簡體   English   中英

如何在Raspberry Pi2的Ubuntu 14.0.4核心rootfs中添加Linux內核和引導加載程序?

[英]how to add linux kernel and boot loader to an Ubuntu 14.0.4 core rootfs for Raspberry Pi2?

顧名思義,我試圖將Ubuntu 14.0.4基本 rootfs用於armhf來為我的Raspberry-Pi2創建最小的Ubuntu映像。

我必須自己添加內核和引導加載程序,並且由於我不是該主題的專業人士,因此我對編譯內核/ U引導的所有不同指南完全感到困惑。 找不到任何內容可以覆蓋整個過程並無法啟動RPi。

是否有人可以幫助我將內核和引導加載程序拍打到RPi2的Ubuntu(核心)rootfs上並從頭創建可引導SD卡的過程?

PS:我希望獲得有關整個過程的分步指南,以便我(以及其他任何與我一樣的人)可以在本地應用它們並從頭開始安裝Pi2。

我有一台Ubuntu 14.0.4便攜式計算機作為我的主機,用於交叉編譯和復制文件等。

我很拼命,謝謝!

為什么不在這里使用正式版本? 擁有SD卡的一般過程是為SD卡有兩個分區。 第一個分區將是FAT32,您的引導程序,設備樹blob和內核映像可駐留在FAT32中以及任何其他文件中。 如果我沒記錯的話,RPi在第一個分區中需要很多其他二進制blob。 第二個將是ext分區,您需要在其中放置rootfs。 取得任何可用的分發映像,將其寫入SD卡,並用您喜歡的任何發行版rootfs替換第二個rootfs分區。 內核和設備樹Blob也可能位於第二個分區的/ boot而不是第一個分區。

我也很快檢查了一下。 我有用於RPi3的RPi3 SD卡。 我用基於Ubuntu的rootfs替換了Raspbian中具有rootfs的第二個分區。 它可以很好地啟動,但停滯在

 * Starting Mount filesystems on boot[ OK ]
 * Starting Populate /dev filesystem[ OK ]
 * Stopping Populate /dev filesystem[ OK ]
 * Starting Populate and link to /run filesystem[ OK ]
 * Stopping Populate and link to /run filesystem[ OK ]
 * Stopping Track if upstart is running in a container[ OK ]
 * Starting Initialize or finalize resolvconf[ OK ]
 * Starting set console keymap[ OK ]
 * Starting Signal sysvinit that virtual filesystems are mounted[ OK ]
 * Starting Signal sysvinit that virtual filesystems are mounted[ OK ]
 * Starting Bridge udev events into upstart[ OK ]
 * Starting device node and kernel event manager[ OK ]
 * Starting Signal sysvinit that remote filesystems are mounted[ OK ]
 * Stopping set console keymap[ OK ]
 * Starting load modules from /etc/modules[ OK ]
 * Starting cold plug devices[ OK ]
 * Starting log initial device creation[ OK ]
 * Stopping load modules from /etc/modules[ OK ]
 * Starting set console font[ OK ]
 * Stopping set console font[ OK ]
 * Starting userspace bootsplash[ OK ]
 * Starting Send an event to indicate plymouth is up[ OK ]
 * Stopping userspace bootsplash[ OK ]
 * Stopping Send an event to indicate plymouth is up[ OK ]
 * Stopping cold plug devices[ OK ]
 * Stopping log initial device creation[ OK ]
 * Starting configure network device security[ OK ]
 * Starting Mount network filesystems[ OK ]
 * Starting configure network device security[ OK ]
 * Stopping Mount network filesystems[ OK ]
 * Starting configure network device[ OK ]
 * Starting configure network device[ OK ]
 * Starting Bridge socket events into upstart[ OK ]
The disk drive for / is not ready yet or not present.
keys:Continue to wait, or Press S to skip mounting or M for manual recovery

我沒有調查原因,但我相信是由於/ etc / fstab所致。

[root@alarmpi ~]# cat /etc/fstab 
# 
# /etc/fstab: static file system information
#
# <file system> <dir>   <type>  <options>       <dump>  <pass>
/dev/mmcblk0p1  /boot   vfat    defaults        0       0

這是來自Arch。 我沒有記下Ubuntu的版本,但這是不正確的。

用基於ArchLinux ARM的rootfs替換rootfs,它似乎可以正常啟動。 請注意,我拿了一個基於Raspbian的SD卡,並用Arch交換了rootfs。

[    3.743064] systemd-journald[85]: Received request to flush runtime journal from PID 1
[    4.791472] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup

Arch Linux 4.1.18-v7+ (ttyS0)

alarmpi login: 
Arch Linux 4.1.18-v7+ (ttyS0)

alarmpi login: root
Password: 
Welcome to Arch Linux ARM

     Website: http://archlinuxarm.org
       Forum: http://archlinuxarm.org/forum
         IRC: #archlinux-arm on irc.Freenode.net
[   15.258407] random: nonblocking pool is initialized

我希望這能給您足夠的關於如何解決此問題的一般思路。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM