При Puppy Linux има някакви особености в стартиращите скриптове и в начина на настройка на мрежата.
В /etc/rc.d/README.txt е описан начинът на стартиране:
...
Startup:
When Puppy boots, the order of execution of the
scripts is (except for a full-hd installation and UniPup):
/init (in the initial ramdisk)
switch_root occurs, some content of / relocates to /initrd
and the following scripts then executed:
/etc/rc.d/rc.sysinit
Called from rc.sysinit:
/etc/rc.d/rc.update
/etc/rc.d/rc.network (as a parallel process)
/etc/rc.d/rc.services (as a parallel process)
/etc/rc.d/rc.country
/etc/rc.d/rc.local (created by rc.sysinit if doesn't exist)
/etc/profile
Puppy doesn't use runlevels.
Note, the only script listed above that is not user-editable is init,
as this is pristine out of initrd.gz.
...
Тук се забелязва, че Puppy не използва runlevels и скриптовете, освен init, са user-editable.
Настройката на мрежата става с network wizard (
/usr/sbin/net-setup.sh). Ето какво пише за него -
цък. Темата е старта и някои директории са променени, но принципът е същият.
В директория /etc/network-wizard/network/interfaces/ се създава конфигурационен файл $HWADDRESS.conf, където $HWADDRESS е MAC адресът на картата (името ще е нещо такова -
00:22:15:d9:e6:a4.conf).
Ако се смени MAC адресът на картата и се направи нова настройка, в тази директория ще се появи файл с име, съвпадащо с новия MAC адрес. Лошото е, че при рестарт отново се използа предишния MAC адрес.
В стартиращия скрип за мрежата (
/etc/rc.d/rc.network) се забелязва една функция
rewrite_mac_address (), която в началото съдържа ред "HWADDRESS=$(LANG=C ifconfig eth0 | head -n 1 | tr -s ' ' | cut -d' ' -f5)", a в нейния край този HWADDRESS се използва за име на файла в /etc/network-wizard/network/interfaces/.
Не съм запознат с писането на скриптове, но мисля, че трябва да се пипне тук, за да може да се зададе нов MAC адрес (както пише в README.txt, тези скриптове са user-editable).
Може да се вмъкне команда "ifconfig eth0 hw ether 00:22:15:d9:e6:a4" преди реда, започващ с "HWADDRESS=...", за да се получи нещо такова:
...
INTERFACES=/etc/network-wizard/network/interfaces
ifconfig eth0 hw ether 00:22:15:d9:e6:a4
HWADDRESS=$(LANG=C ifconfig eth0 | head -n 1 | tr -s ' ' | cut -d' ' -f5)
...
Когато пробвам това с Live CD на Lucid Puppy 5.25, новият MAC адрес се запазва между рестартите (промените се записват във файл lupusave.3fs, който се зарежда при стартиране).
Ако искаш, може да опиташ по този начин. Може и да изчакаш някой друг, който е по-добре запознат с тези скриптове да ти даде съвет (прикачил съм ги, за да може да ги разгледат).
Добре е да дадеш и информация коя точно версия използваш - "Wary" или "Lucid". Има разлики между тях (поне в ядрата, в някои от наличните програми и в стандартно настроените window manager-и). А и първата е ориентирана специално за по-стари компютри.