Raspberry Pi(樹莓派)上從零開始構建Linux系統(簡稱PiLFS)(三)

來源:互聯網
上載者:User

標籤:lfs   modified   軟體包   group   tde   family   /var   cpu   軟體   

九. 系統配置

  1. 安裝 LFS-Bootscripts-20150222

    軟體包包含一套在 LFS 系統啟動和關閉時的啟動和停止指令碼。

cd /sourcestar -jxf lfs-bootscripts-20150222.tar.bz2cd lfs-bootscripts-20150222make installcd /sourcesrm -rf lfs-bootscripts-20150222

  2. 配置系統主機名稱

echo "lfs" > /etc/hostname

  3. 建立 /etc/hosts  檔案

cat > /etc/hosts << "EOF"# Begin /etc/hosts (network card version)127.0.0.1 localhost# End /etc/hosts (network card version)EOF

  4. 配置 Sysvinit

    核心初始化期間,第一個啟動並執行程式預設是SysVinit,這個程式讀取/etc/inittab檔案

cat > /etc/inittab << "EOF"# Begin /etc/inittabid:3:initdefault:si::sysinit:/etc/rc.d/init.d/rc Sl0:0:wait:/etc/rc.d/init.d/rc 0l1:S1:wait:/etc/rc.d/init.d/rc 1l2:2:wait:/etc/rc.d/init.d/rc 2l3:3:wait:/etc/rc.d/init.d/rc 3l4:4:wait:/etc/rc.d/init.d/rc 4l5:5:wait:/etc/rc.d/init.d/rc 5l6:6:wait:/etc/rc.d/init.d/rc 6ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r nowsu:S016:once:/sbin/sulogin1:2345:respawn:/sbin/agetty --noclear tty1 96002:2345:respawn:/sbin/agetty tty2 96003:2345:respawn:/sbin/agetty tty3 96004:2345:respawn:/sbin/agetty tty4 96005:2345:respawn:/sbin/agetty tty5 96006:2345:respawn:/sbin/agetty tty6 9600# End /etc/inittabEOF
View Code

  5. 安裝 PiLFS-Bootscripts-20160219

    軟體包包含指令碼的集合,以及針對樹莓派硬體的一些修複

cd /sourcestar -Jxf pilfs-bootscripts-20160219.tar.xzcd pilfs-bootscripts-20160219make install-networkfix install-swapfix install-fake-hwclock install-switch-cpu-governorcd /sourcesrm -rf pilfs-bootscripts-20160219

  6. 系統地區設定

cat > /etc/locale.conf << "EOF"
LANG=zh_CN.GB18030
EOF

  7. 建立 /etc/inputrc 檔案

    inputrc  檔案的作用是告知系統應該以怎樣的鍵盤配置處理鍵盤

cat > /etc/inputrc << "EOF"# Begin /etc/inputrc# Modified by Chris Lynn <[email protected]net># Allow the command prompt to wrap to the next lineset horizontal-scroll-mode Off# Enable 8bit inputset meta-flag Onset input-meta On# Turns off 8th bit strippingset convert-meta Off# Keep the 8th bit for displayset output-meta On# none, visible or audibleset bell-style none# All of the following map the escape sequence of the value# contained in the 1st argument to the readline specific functions"\eOd": backward-word"\eOc": forward-word# for linux console"\e[1~": beginning-of-line"\e[4~": end-of-line"\e[5~": beginning-of-history"\e[6~": end-of-history"\e[3~": delete-char"\e[2~": quoted-insert# for xterm"\eOH": beginning-of-line"\eOF": end-of-line# for Konsole"\e[H": beginning-of-line"\e[F": end-of-line# End /etc/inputrcEOF
View Code

  8. 建立 /etc/shells 檔案

    shells 檔案是當前系統所有可用 shell  的列表檔案

cat > /etc/shells << "EOF"# Begin /etc/shells/bin/sh/bin/bash# End /etc/shellsEOF

  9. LFS官方文檔中還包含了其它可選配置,可按需添加

 

十. 讓LFS系統可引導

  1. 建立 /etc/fstab 檔案

    將宿主系統的分區放到 /home 目錄下,第一次引導lfs系統後將不得不清除宿主系統

cat > /etc/fstab << "EOF" # Begin /etc/fstab
# file system  mount-point  type     options             dump  fsck
#                                                              order

/dev/mmcblk0p1 /boot vfat defaults 0 0/dev/mmcblk0p2 /home ext4 defaults,noatime 0 1/dev/mmcblk0p3 swap         swap     pri=1               0     0
/dev/mmcblk0p4 / ext4 defaults,noatime 0 2proc /proc proc nosuid,noexec,nodev 0 0sysfs /sys sysfs nosuid,noexec,nodev 0 0devpts /dev/pts devpts gid=5,mode=620 0 0tmpfs /run tmpfs defaults 0 0devtmpfs /dev devtmpfs mode=0755,nosuid 0 0
# End /etc/fstab EOF

  2. 核心和引導程式

    當你可能可以編譯你自己的Linux核心作為構建LFS的一部分時,強烈建議你確保系統首先正確的引導樹莓派發行版的核心。

    樹莓派上沒有GRUB,我們代替依賴樹莓派發行版的 bootloader 去引導。

    退出chroot,編輯 /boot/cmdline.txt ,將 root=/dev/mmcblk0p2 改為 root=/dev/mmcblk0p4

 

十. 最後

  1. 建立 /etc/lfs-release 檔案

cat > /etc/lsb-release << "EOF"DISTRIB_ID="Pi Linux From Scratch"DISTRIB_RELEASE="LFS-BOOK-SVN-20161221"DISTRIB_CODENAME="kevin"DISTRIB_DESCRIPTION="Pi Linux From Scratch"EOF

  2. 安裝配置 dhcpcd

cd /sourcestar -Jxf dhcpcd-6.11.5.tar.xzcd dhcpcd-6.11.5./configure --libexecdir=/lib/dhcpcd \            --dbdir=/var/lib/dhcpcd  &&makemake installcd /sourcesrm -rf dhcpcd-6.11.5

# 有線網路設定
cat > /etc/sysconfig/ifconfig.eth0 << "EOF"
ONBOOT="no"
IFACE="eth0"
SERVICE="dhcpcd"
DHCP_START="-b -q"
DHCP_STOP="-k"
EOF

# 無線網路配置
cat > /etc/sysconfig/ifconfig.wlan0 << "EOF"
ONBOOT="yes"
IFACE="wlan0"
SERVICE="wpa"

# Additional arguments to wpa_supplicant
WPA_ARGS=""

WPA_SERVICE="dhcpcd"
DHCP_START="-b -q"
DHCP_STOP="-k"
EOF

# wifi配置
cat > /etc/sysconfig/wpa_supplicant-wlan0.conf << "EOF"
network={
ssid="WiFi-name1"
psk="WiFi-password1"
priority=5
}
EOF


  3. 安裝 OpenSSH

# openssh依賴於openssl庫,先安裝openssl
cd /sourcestar -zxf openssl-1.0.2j.tar.gzcd openssl-1.0.2j./config --prefix=/usr \ --openssldir=/etc/ssl \ --libdir=lib \ shared \ zlib-dynamic &&make depend &&makemake MANDIR=/usr/share/man MANSUFFIX=ssl install &&install -dv -m755 /usr/share/doc/openssl-1.0.2j &&cp -vfr doc/* /usr/share/doc/openssl-1.0.2jcd /sourcesrm -rf openssl-1.0.2j
# 安裝opensshcd /sourcestar -zxf openssh-7.4p1.tar.gzcd openssh-7.4p1install -v -m700 -d /var/lib/sshd &&chown -v root:sys /var/lib/sshd &&groupadd -g 50 sshd &&useradd -c ‘sshd PrivSep‘ \ -d /var/lib/sshd \ -g sshd \ -s /bin/false \ -u 50 sshd./configure --prefix=/usr \ --sysconfdir=/etc/ssh \ --with-md5-passwords \ --with-privsep-path=/var/lib/sshd &&makemake install &&install -v -m755 contrib/ssh-copy-id /usr/bin &&install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1 &&install -v -m755 -d /usr/share/doc/openssh-7.4p1 &&install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.4p1cd /sources
rm -rf openssh-7.4p1


# 系統啟動時開啟ssh服務
cd /sources
tar -Jxf blfs-bootscripts-20160902.tar.xz
cd blfs-bootscripts-20160902
make install-sshd
cd /sources
rm -rf blfs-bootscripts-20160902

  4. 重啟系統

logoutumount -v $LFS/dev/ptsumount -v $LFS/devumount -v $LFS/runumount -v $LFS/procumount -v $LFS/sysumount -v $LFSshutdown -r now

 

十一. 如何將PiLFS做成TF卡鏡像

  1. 需要一台裝有Linux系統的PC機

  2. 將TF卡上的boot分區和PiLFS分區的內容分別複製到PC機上的bootfiles和lfsfiles檔案夾下

  3. 利用 gparted 格式化並重新劃分TF卡:

    /dev/sdb1       50M        FAT32        boot分區

    /dev/sdb2       2G          EXT4          PiLFS分區

  4. 使用 parted -l 命令查看並取得boot分區的開始位置(bootStart)和PiLFS分區的結束位置(lfsEnd)

  5. 將bootfiles和lfsfiles檔案夾下的內容分別複製到重新劃分的boot分區和PiLFS分區

  6. 利用dd命令將TF卡做成鏡像:

      dd if=/dev/sdb of=mylfs.img bs=1M count=2098

    其中,bs為bootStart的值,count為lfsEnd的值 

Raspberry Pi(樹莓派)上從零開始構建Linux系統(簡稱PiLFS)(三)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.