æ°å¹Žåãç§ãæå±ããéçºããŒã ã«å€åããŠããã®ã§ãäºæããªãã¿ã¹ã¯ãèœã¡ãŸãã-Linuxçšã®ã³ã³ãããŒã«PCã䜿çšããæ©åšç®¡çã·ã¹ãã ã®éçºïŒããã¯é©ãã§ã¯ãããŸããïŒ
Linuxéšåã¯ãUbuntuã®Code :: Blocksç°å¢ã§éçºãããŸããïŒãããŠçŸåšé²è¡äžã§ãïŒã ããããå®è·µã瀺ããŠããããã«ã質ã®é«ãäœæ¥ãè¡ãã«ã¯ãå¿çæéãä¿èšŒããããã£ãšç°¡åãªãã®ãå¿
èŠã§ãã ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãæŽçããã¿ã¹ã¯ã¯ãTCP / IPãä»ããŠæ¥ç¶ããããªã¢ãŒãã³ã³ãã¥ãŒã¿ãŒã§è§£æ±ºããããããã³ã³ãœãŒã«ã¯äœæ¥ã«ååã§ããã
ãããããç§ãã¡èªèº«ã®ã¢ã»ã³ããªã®Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ã䜿çšãããšããã¢ã€ãã¢ãæµ®äžããŸãããå®éãããã¯ïŒãã£ã¹ããªãã¥ãŒã·ã§ã³ã¢ã»ã³ããªïŒç§ã®èªç±æéã«è¡ããŸããã éžæã¯LFSã«ããã£ãã ãã®ãããªLFSãHabréã§ãç¹°ãè¿ãèšè¿°ãããŠãããšããäºå®ã«ã€ããŠã¯ãç¹å®ã®ã±ãŒã¹ã§ç®ã®åã§çºçããããã€ãã®è¿œå ã®ã¿ã¹ã¯ïŒåçŽãªLinuxãé€ãïŒã®ãœãªã¥ãŒã·ã§ã³ã«ã€ããŠèª¬æããŸãã
æåã¯ããªã¢ã«ã¿ã€ã ã³ã¢ã䜿çšãããšãããããªã¿ã¹ã¯ã1ã€ã ããããŸããã
ããããããã«ãé
åžããããåããUSBãã©ãã·ã¥ãã©ã€ãã®ã¢ã€ãã¢ãã¿ããªã®å¥œã¿ã«ãªã£ããšãããã©ãã·ã¥ãã©ã€ããå¢ãããããŸããŸãªã³ã³ãã¥ãŒã¿ãŒã§ã·ã¹ãã ãèµ·åããã¿ã¹ã¯ããããŸããïŒå€ãã®ãã¹ãã¹ã¿ã³ããããããã©ãã·ã¥ãã©ã€ãããã±ããã«å
¥ããŠããããã«è¡ããŸãïŒã ããã§åé¡ãçºçããŸãã-LFSã«ã¯ãããã³ã³ãã¥ãŒã¿ãŒããå¥ã®ã³ã³ãã¥ãŒã¿ãŒãžã®100ïŒ
ã®ç§»æ€æ§ããããŸããã ç¹å®ã®ã³ã³ãã¥ãŒã¿ãŒã«é©åãããã«ã¯ãããã€ãã®ã¹ã¯ãªãããç·šéããå¿
èŠããããŸããããã¯ãæšæ¥ã®Windowsãšã³ã³ãŒããŒã®ããŒã ã§ã¯åé¡ããããŸãïŒäžéšã¯Ubuntuä»®æ³ãã·ã³ã«è»¢éãããŸããããã³ã³ãœãŒã«ãšã¹ã¯ãªããã¯çœå®³ã§ãïŒã ã·ã¹ãã ã®è€è£œã«ã¯ãã¢ã»ã³ããªããã»ã¹äžã«å®è¡ãããããã€ãã®æäœã®ç¹°ãè¿ããå¿
èŠã§ãïŒåãGRUBãã€ã³ã¹ããŒã«ããŸãïŒã
åœç¶ã®ããšãªããããã¹ãŠã®åé¡ã®è§£æ±ºçã¯ã€ã³ã¿ãŒãããäžã«ãããŸãããäžéšã®æ
å ±ã1ãæã§åéããŠããã ããå·ã€ããããšã¯ãªããšæããŸãã
ãããã£ãŠãç¹å®ã®ã¿ã¹ã¯ã¯æ¬¡ã®ãšããã§ãã...
1.ãªã¢ã«ã¿ã€ã ãããã§Linuxã«ãŒãã«ã䜿çšãã
ããã¯æãç°¡åãªã¿ã¹ã¯ã®1ã€ã§ããã ãã«ãããã»ã¹ã¯1ã€ã®äŸå€ãé€ã
LFSããã¯ãééããŸãããæ¬ã®éåžžã®ã«ãŒãã«ã®ä»£ããã«ã2.6.33.9ãšãã®ããã®
RTããããæ¡çšãããŸããã ã«ãŒãã«ãæäœãããå ŽåïŒLinuxããããŒãšã«ãŒãã«ãçŽæ¥ã€ã³ã¹ããŒã«ããå ŽåïŒãããããé©çšããããŒãžã§ã³ã䜿çšããŸãã
ãŸãããã£ã¹ããªãã¥ãŒã·ã§ã³ãããã¯ã¹ã¯ããããŒãã£ã·ã§ã³ãæ¥ç¶ããã«æ§ç¯ããããšèšããŸãïŒãã®å Žåã2GBã®RAMã¯å±æ ¹ã®äžã«ãããã¹ã¯ããã¯ä¿èšŒãããå¿çæéãžã®æªåœ±é¿ã®ããã«æãŸãããªãããã©ãã·ã¥ãã©ã€ãã«ãšã£ãŠã¯éåžžã«ç Žå£çã§ãïŒåäžã®ext2fsããŒãã£ã·ã§ã³ã
2.ã·ã¹ãã ãžã®èªåå
¥åïŒéçºç°å¢ã§ã¯ãã»ãã¥ãªãã£ã¯éèŠã§ã¯ãããŸãããå€ãã®çç±ã«ãããã·ã¹ãã ãã«ãŒãã§å®è¡ã§ããŸãïŒ
èªåãã°ã€ã³ã®ã¢ã€ãã¢ã¯
ãããããåãå
¥ã
ãããŸãã ã
autologin.cãã¡ã€ã«ã¯ã次ã®å
容ã§äœæãããŸããã
int main() { execlp("login", "login", "-f", "root", 0); }
次ã«ããã¡ã€ã«ã¯æ¬¡ã®ã³ãã³ãã§ã³ã³ãã€ã«ãããŸããã
gcc autologin.c -o /usr/local/sbin/autologin
ããã«ãèªåãã°ã€ã³æ©èœãåãã2å°ã®ã³ã³ãœãŒã«ã§ååã§ããããšã決å®ãããŸããïŒ1å°ã¯ã·ã¹ãã ãèµ·åãããã1å°ã¯å¿
èŠã«å¿ããŠä»ã®ãã¹ãŠãèµ·åããŸãïŒã
/ etc / inittabãã¡ã€ã«ã§ã¯ã次ã®è¡ïŒ
1:2345:respawn:/sbin/agetty tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
次ã®ãã®ã«çœ®ãæããããŸããïŒ
1:2345:respawn:/sbin/agetty -n -l /usr/local/sbin/autologin tty1 9600
2:2345:respawn:/sbin/agetty -n -l /usr/local/sbin/autologin tty2 9600
ãã®åŸãèªåãã°ã€ã³ã«åé¡ã¯ãªãã£ããããè¿œå ã®ã¹ã¯ãªããæäœã¯ãããŸããã§ããã
3.ãã©ã€ããæ¥ç¶ããé åºããã·ã¹ãã ã解ã
BIOSããšã«åé¡ããããŸãã ããšãã°ãæåã®ãã©ã€ãã¯èµ·åå
ã®ãã©ã€ãã§ãããšèãã人ãããŸãã ãã®å Žåããã©ãã·ã¥ãã©ã€ãã¯sdaã«ãªããŸãã ä»ã®äººã¯ãæåã«ããŒããã©ã€ãã䜿çšãã次ã«ä»ã®ããã€ã¹ã䜿çšããå¿
èŠããããšèããŠããŸãã ãã®å Žåããã©ãã·ã¥ãã©ã€ãã®ååã¯sdbãsdcãªã©ã«ãªããŸãã
ãã®çµæãååšããªããã£ã¹ã¯ããã·ã¹ãã ãèµ·åã§ããã/ etc / fstabã§ééã£ããã©ã€ããæå®ãããŠãããããã«ãŒããã£ã¬ã¯ããªãããŠã³ãã§ããŸããã
ãã¹ãŠã¯ãç¹å®ã®ãã·ã³ã®/boot/grub/grub.cfgããã³/ etc / fstabãä¿®æ£ãããããã©ã€ãåïŒsdaãsdbãªã©ïŒã䜿çšããŠããŠã³ããŒãããã³ããŠã³ãããã®ã§ã¯ãªãããã®ãã¡ã€ã«ã·ã¹ãã ã®ãã¡ã€ã«ã·ã¹ãã ã®UUIDã䜿çšããããšã§è§£æ±ºãããŸããã©ãã·ã¥ãã©ã€ãäžã®äžæã§ãããæãéèŠãªããšã¯ãæ°žç¶çã§ãã
åé¡ã¯ãGRUBã¯UUIDã§åäœããããã«ãŒãã«ã§ã¯ã§ããªããšããããšã§ããã€ãŸããUUIDã§ïŒã·ã¹ãã åãç¥ããã«ïŒã«ãŒãã·ã¹ãã ãçŽæ¥ããŠã³ãããããšã¯ã§ããŸããã ããã¯ãã°ã§ã¯ãªããLinus Torvaldsã®ã€ããªãã®ãŒçèæ
®ã®çµæã§ãããããå°æ¥ãã®ãããªæ©äŒãæåŸ
ããã¹ãã§ã¯ãããŸããã ããã«ãããããããåé¿çããããŸã-ããã¯
initramfsã§ãã
Initramfsã¯ãå®éã®ã·ã¹ãã ã®ãã¡ã€ã«ã·ã¹ãã ã®ããŠã³ããŒããšããŠã³ãã«åœ¹ç«ã€äžæãã¡ã€ã«ã·ã¹ãã ã§ãã
Initramfsã¯æšæºã®LFSã¢ã»ã³ããªã«å«ãŸããŠããªãããã
Gentoo Wikiã®æšå¥šäºé
ãšç¬èªã®èæ
®äºé
ã䜿çšããŠãã«ãããŸãïŒGentoo Wikiã®ããŒãžã§ã³ã§ã¯ããã£ã¹ã¯åã®åé¡ã¯ç§ã®ã±ãŒã¹ã§ã¯å€æŽããã«è§£æ±ºãããæ©èœããŸããã§ããïŒã
ã¡ã€ã³UUIDãããŠã³ãããã·ã³ãã«ãªinitramfsã·ã¹ãã ãäœæããã«ã¯ãã·ã³ãã«ãªã·ã§ã«ãšinitã¹ã¯ãªãããå¿
èŠã§ãã ã³ãã³ãã©ã€ã³ãŠãŒãã£ãªãã£ã®å®å
šãªã»ããã¯initramfsã«ãšã£ãŠæ±ãã«ãããããbusyboxã¯ãã®ç®çã«ãã䜿çšãããŸãããµã€ãºãšèŠä»¶ã¯æ§ããã§ãæãäžè¬çã«äœ¿çšããããŠãŒãã£ãªãã£ã®ããã€ããå®è£
ããŸãã
busyboxã®ææ°ããŒãžã§ã³ãéžæããŸãã
cd sources
wget http://busybox.net/downloads/busybox-1.18.4.tar.bz2
é梱ããŠæ§æïŒ
tar jxf busybox-1.18.4.tar.bz2
cd busybox-1.18.4
make menuconfig
æ§æã¯ã¡ãã¥ãŒïŒLinuxã«ãŒãã«ãªã©ïŒã䜿çšããŠè¡ãããŸãã ååãšããŠãç§ãã¡ã®ããŒãºã«ã¯æšæºæ§æã§ååã§ããã念ã®ããã次ã®æ©èœãæ¥ç¶ãããŠããããšã確èªãã䟡å€ããããŸãã
devfsã®ãµããŒã-/ devã§äœæ¥ããããã®devfsã®ãµããŒãã
Busyboxãéçã©ã€ãã©ãªïŒå
±æã©ã€ãã©ãªãªãïŒ-éçã¬ã€ã¢ãŠããšããŠãã«ãããŸããããã«ãããå€æ°ã®ã©ã€ãã©ãªããã©ãã°ããªãããã«ããŸãã
ããŒãžã§ã³2.6.x Linuxã«ãŒãã«ã®ãµããŒã-2.6ã«ãŒãã«ã³ã¢ã®ãµããŒãã
ãŠãŒãã£ãªãã£ã®æ©èœã®ãµããŒãïŒshãcatãcutãfindfsãmountãumountãsleepãechoãswitch_rootã
ã³ã³ãã€ã«ããŸãïŒ
make
次ã«ããã¡ã€ã«ã·ã¹ãã ã®ãã£ã¬ã¯ããªããªãŒãåéããŸãã
mkdir /usr/src/initramfs
cd /usr/src/initramfs
mkdir -p bin lib dev etc mnt/root proc root sbin sys
cp -a /dev/{null,console} /usr/src/initramfs/dev/
busyboxãã³ããŒãããŠãŒãã£ãªãã£ãžã®ãªã³ã¯ãäœæããŸãã
cp /sources/busybox-1.18.4/busybox ./bin/
cd bin
ln -s busybox sh
ln -s busybox cat
ln -s busybox cut
ln -s busybox findfs
ln -s busybox mount
ln -s busybox umount
ln -s busybox sleep
ln -s busybox switch_root
cd ..
initã¹ã¯ãªãããèšè¿°ããããšã¯æ®ããŸãã
ã¹ã¯ãªãããå®è¡å¯èœã«ããŸãã
chmod +x /usr/src/initramfs/init
äžæãã¡ã€ã«ã·ã¹ãã ãã¢ãŒã«ã€ãã«é
眮ããŸãã
cd /usr/src/initramfs
find . -print0 | cpio --null -ov --format=newc | gzip -9 > /boot/initrd.img-2.6.33-rt31
ãã¡ã€ã«åã«æ³šæããŸããã-ããã¯ã«ãŒãã«åã«å¯Ÿå¿ããŠããå¿
èŠããããŸãïŒããã¯GRUBããã¡ã€ã«ãæ£ããããã¯ã¢ããããããã«å¿
èŠã§ãïŒã ã€ãŸããã«ãŒãã«ã®ååãvmlinux-
2.6.33-rt31ã®å Žåãinitramfsã®ååã¯initrd.img-
2.6.33-rt31ã§ãªããã°ãªããŸããã
ããã§grub-mkconfigãå®è¡ããããšãGRUBã¯initramfsãæ€åºããæ§æã«ã«ãŒãã·ã¹ãã ã®UUIDãå«ããŸãã 確èªããã«ã¯ãæã§/boot/grub/grub.cfgãä¿®æ£ããŸãã ããšãã°ãæ§æïŒ
menuentry "Linux 2.6.33-rt31" --class gnu-linux --class gnu --class os {
insmod ext2
set root='(hd0,1)'
search --no-floppy --fs-uuid --set 47029df8-8567-417d-b813-eedfe1ff8b0f
linux /boot/vmlinux-2.6.33-rt31 root=/dev/sda1 ro
}
ä¿®æ£ããïŒ
menuentry "Linux 2.6.33-rt31" --class gnu-linux --class gnu --class os {
insmod ext2
set root='(hd0,1)'
search --no-floppy --fs-uuid --set 47029df8-8567-417d-b813-eedfe1ff8b0f
linux /boot/vmlinux-2.6.33-rt31 root=UUID=47029df8-8567-417d-b813-eedfe1ff8b0f ro
initrd /boot/initrd.img-2.6.33-rt31
}
ãã¡ã€ã«ã·ã¹ãã ã®UUIDã¯ã次ã®ããã«ç¢ºèªã§ããŸãïŒããšãã°ã/ dev / sdb1ã®å ŽåïŒã
blkid -p -o udev /dev/sdb1
/ etc / fstabãä¿®æ£ãã次ã®è¡ã眮ãæããŸãïŒ
/dev/sda1 / ext2 defaults 1 1
ã«
UUID= 47029df8-8567-417d-b813-eedfe1ff8b0f / ext2 defaults 1 1
äžèšã®ãã¹ãŠã®æäœã§ã¯ãã«ãŒãã«ãdevtmpfsïŒCONFIG_DEVTMPFS = yïŒããã³initramfsïŒCONFIG_BLK_DEV_INITRD = yïŒããµããŒãããå¿
èŠãããããšã«ã泚æããå¿
èŠããããŸãã
4.ãããã¯ãŒã¯ã«ãŒãããã·ã¹ãã ã解é€ãã
ã³ã³ãã¥ãŒã¿ãŒã«è€æ°ã®ãããã¯ãŒã¯ã¢ããã¿ãŒãã€ã³ã¹ããŒã«ãããŠããå Žåãã«ãŒãã«ã¢ãžã¥ãŒã«ã®äžŠåèªã¿èŸŒã¿ã¯ããããã®ããŒããžã®ååã®äžå®ã®å²ãåœãŠãä¿èšŒããŸããã ããšãã°ã2ã€ã®ããŒãããããŸãã Board_1ã«ã¯eth0ã·ã¹ãã ã®ã€ã³ã¿ãŒãã§ãŒã¹åããããBoard_2ã«ã¯eth1ããããŸãã 次åã®åèµ·åæã«ãBoard_1ãeth1ã«ãªããBoard_2ãeth0ã«ãªãããšããããŸãã
ãã®ãããLFSã¯ååãç¹å®ã®ããŒãã«ãã€ã³ãããŸãã å¥ã®ã³ã³ãã¥ãŒã¿ãŒã§èµ·åããå Žåããããã¯ãŒã¯ãç«ã¡äžãããªãå¯èœæ§ãéåžžã«é«ããªããŸãã
ç§ã®ç¹å®ã®ã±ãŒã¹ã§ã¯ããã¹ãŠã®ã³ã³ãã¥ãŒã¿ãŒã®ããŒãã¯åãã§ãããIPã¯éçã§ãïŒã¿ãŒããã«ã³ã³ãã¥ãŒã¿ãŒãšã®çŽæ¥éä¿¡ã®ã¿ïŒã
LFSã§ã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã®åŒãäžãã¯ãã¹ã¯ãªãã/etc/rc.d/init.d/networkã«ãã£ãŠå®è¡ãããŸãã ã¹ã¯ãªãããè¿œå ããŠãæ§æãã¡ã€ã«/etc/udev/rules.d/70-persistent-net.rulesãçæãããäœæ¥ãå®äºãããšãã®ãã¡ã€ã«ãåé€ãããããã«ããŸãã ãã£ãšç°¡åãªæ¹æ³ããããšæããŸãããèŠã€ãã£ãæ¹æ³ã¯æ©èœããŠãããã·ã¹ãã ã®çµã¿ç«ãŠæã«Udevæäœã®åçãæãäžããç¹å¥ãªæ¬²æ±ã¯ãããŸããã§ããã
caseã³ãã³ãã®éå§ã»ã¯ã·ã§ã³ã®å
é ã«ã次ãè¿œå ããŸãã
for NIC in /sys/class/net/* do INTERFACE=${NIC##*/} udevadm test --action=add $NIC done
ãããŠãåæ¢ã»ã¯ã·ã§ã³ã®æåŸïŒ;;ã®çŽåïŒã«è¿œå ããŸãïŒ
rm /etc/udev/rules.d/70-persistent-net.rules
ããã§ãä»»æã®ã·ã¹ãã ã§èµ·åãããšããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã®ååãeth0ã«ãªãïŒæããšããŸããã¯ãªå Žåãé€ãïŒããããã¯ãŒã¯ãäžæããŸãã ãã¡ãããipv4ãã¡ã€ã«ããããã£ã¬ã¯ããª/etc/sysconfig/network-devices/ifconfig.eth0ãååšããå¿
èŠããããŸãã ãã®ãã¡ã€ã«ã®å
容ã¯ãLFSããã¯ã«èšèŒãããŠããŸãã
5.ä»»æã®ãã©ãã·ã¥ãã©ã€ãã«LFSãã€ã³ã¹ããŒã«ããã¹ã¯ãªãããäœæãã
æåŸã«æ®ã£ãŠããã®ã¯ãã·ã¹ãã ã®ã¢ãŒã«ã€ããšãä»»æã®ã¡ãã£ã¢ã«ã€ã³ã¹ããŒã«ããã¹ã¯ãªãããäœæããããšã§ãã
ïŒUSBãã©ãã·ã¥ãã©ã€ãããã§ã¯ãªãïŒå¥ã®ã·ã¹ãã ãèµ·åããããšãã°/ mnt / usb-osã«USBãã©ãã·ã¥ãã©ã€ããããŠã³ãããŸãã ã³ã³ãã³ããã¢ãŒã«ã€ãããŸãã
cd /mnt/usb-os
tar -cvjf ~/pack.tar.bz2 *
install_usb-os.shãã€ã³ã¹ããŒã«ããã¹ã¯ãªãããäœæããŠããŸãã ãã©ã¡ãŒã¿ãŒãšããŠãã¹ã¯ãªããã¯ãã·ã¹ãã ãå±éããããã€ã¹ã®ååïŒ/ dev / sdbãªã©ïŒãåããŸãã ã¹ã¯ãªããèªäœãå¿
èŠãªããŒãã£ã·ã§ã³ãšãã¡ã€ã«ã·ã¹ãã ïŒåå/ dev / sdbãæå®ãããŠããå Žåã¯/ dev / sdb1ïŒãäœæããã¢ãŒã«ã€ãã解åããŠGRUBãã€ã³ã¹ããŒã«ããŸãã
ã«ãŒãæš©éã§å®è¡ããå¿
èŠããããå®éãéåžžã«å±éºã§ãã
ããã€ã¹åã誀ã£ãŠæå®ãããšãäœæ¥ãã£ã¹ã¯äžã®ãã¹ãŠã®ããŒã¿ãç Žå£ãããå¯èœæ§ããããŸãïŒ
次ã«ãã¹ã¯ãªãããå®è¡å¯èœã«ããŸãã
chmod +x install_usb-os.sh
pack.tar.bz2ã¢ãŒã«ã€ããã¹ã¯ãªããã®ãããã£ã¬ã¯ããªã«é
眮ããã€ã³ã¹ããŒã©ãŒã®æºåãã§ããŸããïŒ