下载phytium-linux-buildroot,选择如下配置
phytium_ubuntu_defconfig - Build for ubuntu system
编译后生成了disk.img.
然后使用 dd 命令将disk.img烧录到U盘启动盘,U盘格式为vfat.
启动U盘时,在安装系统引导过程中,提示grub丢失,如图:
请问该怎么修复?
@Tangjt
硬件平台是E2000,还是其他CPU?
请提供烧录完的U盘中的目录结构。
E2000 cpu
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
也有可能是烧录时产生的错误造成的, 烧录disk.img时 需要先umount U盘的挂载点, dd 之后不要忘了 sync命令。
$ sudo umount /dev/sdb*
$ sudo dd if=xxx/phytium-linux-buildroot/output/images/disk.img of=/dev/sdb bs=1M
$ sync
我们在编译出的镜像上验证,通过dd命令将disk.img烧录到U盘,再通过U盘启动,可以正常引导并进入系统。没有复现您所说的这种情况。您的图片中把disk.img.7z框出来了,您烧录的是这个文件吗?应该烧录的是disk.img。
你忘了贴错误信息了
重新编译了一遍,现在grub那里正常了,现在当机在进系统过程中,如下:
@Tangjt 你有串口输出的log吗? 这个截图是接显示器DP口的输出吧
disk.img 不是安装盘,是内核+文件系统。
一般插入U盘后, 启动时启动介质选择u盘,就会进grub启动项,选中后再回车就OK了。
是这样操作的,现在挡住了啊
@Tangjt 你使用的buildroot代码,是tag v2.1的吗,请提供一下commit HEAD信息。
phytium-linux-buildroot-master
提供一下commit head的信息,对齐一下软件版本
“串口输出LOG只有BIOS启动部分的,进系统部分没用。”
可以把进系统部分的log输出到串口上并提供吗,这样便于我们确定问题。
修改U盘内系统启动参数具体怎么修改呢?
由于是DP转HDMI的显示,可能遇到如下的问题, 需要在启动参数中加入 cma=256M
https://gitee.com/phytium_embedded/phytium-linux-kernel/wikis/DP%E8%BD%ACHDMI%E6%8E%A5%E5%8F%A3%E5%90%8E%E5%87%BA%E7%8E%B0%20%22allocate%20buffer%20error%22
buildroot中grub.cfg 在board/phytium 目录中, 你可以修改里面的启动参数试试。
能修改U盘里面的系统启动参数吗? 还是说要在buildroot里面的文件去改才行?
可以在U盘里改,你找到grub.cfg这个文件
修改了grub信息后,串口打印如下:
也可以在启动的时候修改启动参数,在grub启动项界面按“e”来编辑启动参数,修改完启动参数后,按“ctrl+x”启动;如图所示:
上面的截图就是通过修改grub信息设置有,串口打印的信息,请查看。
目前显示器可以显示信息了吧, 能到登录login阶段吗
关于串口显示的事, console在boot之后指向了UART0 ttyAMA0.
可能你连接的是UART1,ttyAMA1, 把启动参数改成 console=ttypAMA1,115200, 再试试。
你也可以确定一下物理上连的是那个UART。
现在串口打印可以了,挡住的地方如下:
GNU GRUB version 2.04
/----------------------------------------------------------------------------------------------------------------------------
|*Buildroot
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
----------------------------------------------------------------------------------------------------------------------------/
Use the ^ and v keys to select which entry is highlighted.
Press enter to boot the selected OS, `e' to edit the commands before booting or `c' for a command-line.
[Security] 3rd party image[0] can be loaded after EndOfDxe: MemoryMapped(0x2,0xF517B000,0xF67BFA00).
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B F7E69C40
Loading driver at 0x000F3AA0000 EntryPoint=0x000F4DBEA78
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF F7F59F98
ProtectUefiImageCommon - 0xF7E69C40
你现在的启动参数是:
这里应该是root=/dev/sda2 吧,而且要把root=PARTUUID="0a52c129-7e0f-43ad-989f-d96b07ccdbb2" rootwait删掉。建议在grub中改成以下命令试试:
linux /Image console=ttyAMA1,115200 audit=0 earlycon=pl011,0x2800d000 root=/dev/sda2 rootdelay=20 rw cma=256M
linux /Image console=ttyAMA1,115200 audit=0 earlycon=pl011,0x2800d000 root=/dev/sda2 rootdelay=20 rw cma=256M
@weishanshan grub修改为以上设置后,还是当机了,具体LOG输出如下:
Minimum Emacs-like screen editing is supported. TAB lists completions. Press Ctrl-x or F10 to boot, Ctrl-c or F2
for a command-line or ESC to discard edits and return to the GRUB menu.
Booting a command list
[Security] 3rd party image[0] can be loaded after EndOfDxe: MemoryMapped(0x2,0xF517B000,0xF67BFA00).
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B F7C93C40
Loading driver at 0x000F3AA0000 EntryPoint=0x000F4DBEA78
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF F7FAF318
ProtectUefiImageCommon - 0xF7C93C40
这个问题是由于UEFI固件里的设备树太旧了,需要使用disk.img镜像里的设备树。
在grub启动界面或者/EFI/BOOT/grub.cfg文件中将命令改为:
menuentry "Buildroot" {
devicetree /e2000q-miniitx-board.dtb
linux /Image root=/dev/sda2 rootwait rw console=ttyAMA1,115200 cma=256M
}
应该就可以起来了。
你好, grub改成如下图后,Ctrl-x 或F10 保存重启时还是返回到grub界面,没启动,是哪里格式不对吗 ?
在grub界面只改devicetree和linux命令:
在EFI/BOOT/grub.cfg文件中进行修改是:
menuentry "Buildroot" {
devicetree /e2000q-miniitx-board.dtb
linux /Image root=/dev/sda2 rootwait rw console=ttyAMA1,115200 cma=256M
}
@Tangjt 使用weishanshan 提到的方法,是否解决了您的问题,系统可以启动了?
@Tangjt 由于长时间没有你的回复,这个issue先关闭。
如果有进一步的问题,欢迎再提issue。
登录 后才可以发表评论