OrangePiPC替代法完成Gentoo映象製作

周海棠啦發表於2018-05-20
  • Gentoo 是屬於’極為簡潔優秀超可定製性的類Unix’的Linux..
    Gentoo包管理系統的設計是模組化、可移植、易維護、靈活以及針對使用者機器優化的。Gentoo維基百科

  • 很多人遇到Gentoo,都會選擇放棄,折騰的話,很費力氣的,從頭到尾都是去編譯。但是用Gentoo的玩家,都會蔑視用 Ubuntu的使用者,覺得他們太低端了。

  • 今天我們不從編譯的角度去構建 Gentoo For OrangePi PC,如果你想在你的樹莓派上跑Gentoo,Gentoo官方還是提供了供樹莓派使用的映象。

  • 先決條件:

    • 儲存卡(至少4G,更好8G以上)
    • OrangePi PC的Linux SD卡映象(官方或者Armbian的都行)
    • Gentoo armv7a_hardfp stage3映象 或者本地映象的portage樹的當前快照
  • 準備SD卡

    • 我們需要將引導載入程式和核心從映像傳輸到SD卡。引導載入程式駐留在第一個分割槽之前的未分割槽空間中,核心駐留在第一個分割槽中。
  • 複製引導載入程式和核心

    • 如果壓縮影像,請解壓縮。我們假設該影像稱為Debian_jessie_mini.img,SD卡是/ dev / sdb。根據需要調整以配合您的配置。看影像分割槽結構:

root #fdisk -l Debian_jessie_mini.img
Disk Debian_jessie_mini.img: 809 MiB, 848297984 bytes, 1656832 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x9c2e57c2
Device                  Boot  Start     End Sectors  Size Id Type
Debian_jessie_mini.img1       40960  172031  131072   64M  b W95 FAT32
Debian_jessie_mini.img2      172032 1656832 1484801  725M 83 Linux

在這種情況下,我們將直接複製影像,直到引導分割槽結束到microSD卡。


root #dd if=Debian_jessie_mini.img of=/dev/sdb count=172032

接下來,我們將刪除上一個根分割槽的分割槽表條目,然後建立新的根和可選的交換分割槽。


root #fdisk /dev/sdb
Welcome to fdisk (util-linux 2.26.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 has been deleted.
Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (2048-32372735, default 2048): 172032
Last sector, +sectors or +size{K,M,G,T,P} (2048-32372735, default 32372735):
(choose here the size for your root partition, repeat with the swap partition if you want one, then set the appropriate partition types)
Command (m for help): w

  • 設定根分割槽
    我們假設根分割槽是/ dev / sdb2,交換分割槽是/ dev / sdb3。

使用標籤“linux”和交換空間建立根檔案系統。


root #mkfs.ext4 -L linux /dev/sdb2
root #mkswap /dev/sdb3

  • 將Gentoo安裝到SD卡
    安裝根分割槽並提取stage3 tarball和portage快照。

root #mkdir /mnt/opipc
root #mount /dev/sdb2 /mnt/opipc
root #tar xfa stage3-armv7a_hardfp-????????.tar.bz2 -C /mnt/opipc
root #tar xfa portage-latest.tar.xz -C /mnt/opipc/usr

如果原始的Linux映像支援多個電路板,請安裝引導分割槽,併為Orange Pi PC選擇正確的uImage和script.bin。


root #mount /dev/sdb1 /mnt/opipc/boot
root #cp /mnt/opipc/boot/script.bin.OPI-PC_1080p60 /mnt/opipc/boot/script.bin
root #cp /mnt/opipc/boot/uImage_OPI-2 /mnt/opipc/boot/uImage

現在從影像中提取核心模組並將其複製到Gentoo系統中:


root #mkdir /mnt/opipc_image
root #mount -o loop,offset=$((172032*512)) Debian_jessie_mini.img /mnt/opipc_image
root #cp -a /mnt/opipc_image/lib/modules /mnt/opipc/lib

  • 最後完成配置
    • 編輯 fstab
/ dev / mmcblk0p1 / boot vfat umask = 033 1 2
/ dev / mmcblk0p2 / ext4 defaults 0 1
/ dev / mmcblk0p3 none swap sw 0 0

  • 設定root密碼

root #sed -i "s|root:*|root:$(openssl passwd -1)|" /mnt/opipc/etc/shadow
Password:
Verifying - Password:

  • 在make.conf中設定編譯器並生成標誌

    CFLAGS="-O2 -pipe -march=armv7ve -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -mtune=cortex-a7"
    CXXFLAGS="${CFLAGS}"
    MAKEOPTS="-j4"

  • 要通過除錯ttl uart工作,請更改

s0:12345:respawn:/ sbin / agetty -L 9600 ttyS0 vt100


s0:12345:respawn:/ sbin / agetty -L -f /etc/issue.logo 115200 ttyS0 vt100

  • 現在解除安裝所有內容,將SD卡插入Orange Pi PC,然後開啟電源。


相關文章