您尚未登录。

楼主 #1 2019-07-17 11:21:46

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

buildroot制作根文件系统的一些疑问,一些命令提示需要root用户,命令提示符前不显示路径,屏幕上如何显示命令提示符...

用buildroot创建文件系统时,遇到了一些问题:
1,配置时,没有勾选root用户,进到系统后,很命令提示要Root权限。网上搜了下,/bin/busybox这个文件有个s权限,使用                            chmod a-s /bin/busybox命令,去掉这个s权限,则不会提示要root权限了。

有没有办法,配置buildroot,使生成的文件不用再考虑以上步骤?

2,进入文件系统后,就一个#命令提示符,没有路径显示。群友指出和PS1相关,在/etc/profile里,查找并修改为:export PS1='\w # ',生效该文件后,命令提示符前有路径了,但是cd ~后,在#前不显示~。这个在之前官方bsp里是可显示~的,虽然都是回到根目录下。

有没有办法,配置buildroot,使生成的文件,不用再考虑以上步骤?

3,进入到uboot时,屏幕有白色背景和红色nuvoton图标,以及uboot版本信息;
进入kernel时,有黑色背景及白色调试信息(我这里可能是屏线问题显示的绿色字符);
进入rootfs后,屏幕保持kernel时的调试信息,但不会再显示通过串口发送的调试信息了。

如何设置,使进入rootfs后,屏幕仍可以显示交互的调试信息?

4,buildroot勾选yaffs2文件系统,则output/images里有rootfs.tar文件和rootfs.yaffs2文件。直接烧录rootfs.yaffs2文件,则挂载rootfs失败。将rootfs.tar解压后,然后利用mkyaffs2命令制作镜像文件再烧录,可正常进入文件系统。

请问,为何生成的rootfs.yaffs2文件不能直接烧录进去?

最近编辑记录 Gentlepig (2019-07-17 11:38:39)

离线

楼主 #4 2019-07-17 13:40:28

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: buildroot制作根文件系统的一些疑问,一些命令提示需要root用户,命令提示符前不显示路径,屏幕上如何显示命令提示符...

感谢二位解答。

离线

楼主 #6 2019-07-17 13:50:46

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: buildroot制作根文件系统的一些疑问,一些命令提示需要root用户,命令提示符前不显示路径,屏幕上如何显示命令提示符...

晕哥 说:

1. 你可以手动生成文件系统, 使用 fakeroot: https://whycan.cn/t_2179.html
    或者像全志官方bsp一样, 把 fakeroot 整合到 buidroot: https://whycan.cn/t_1014.html



4. 应该是 buildroot 的 mkfs.yaffs2 参数和你手动执行的不一致。


mkyaffs2 --inband-tags -p 2048 rootfs rootfs_yaffs2.img
这是手动制作yaffs2文件镜像用到的命令。
而在bulidroot配置时,只找到了
Filesystem images --->
       \[*\] yaffs2 root filesystem
没有找到参数设置相关的选项。

离线

楼主 #8 2019-07-17 13:57:27

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: buildroot制作根文件系统的一些疑问,一些命令提示需要root用户,命令提示符前不显示路径,屏幕上如何显示命令提示符...

firstman 说:
jiangming1399 说:

1. 勾上root用户。
2. 可能与ash的配置有关。不推荐把home目录设置到/,建议放到/root或/home/$(USER)目录下。
3. 本质上屏幕和串口不是同一个输出设备,没有很方便的方法做到两个同时输出:只能将串口和屏幕二选一作为默认输出设备。

1. 请教怎么勾上 root 用户
3. 他问的应该是, 第一个进程跑起来之后, 就不能用 fb 看log了。

配置buildroot时的system configuration下有个Enable root logged with password,应该是选这个。


Makefile里没找到mkyaffs2这个单词。
buildroot目录里倒是有这个命令:
#:~/nuc970bsp/applications/NUC970_Buildroot$ find . -name mkyaffs2
./output/build/host-yaffs2utils-0.2.9/mkyaffs2
./output/host/usr/bin/mkyaffs2
------------------------------
grep命令搜到了,可能是这个:
./fs/yaffs2/yaffs.mk:    $(HOST_DIR)/usr/bin/mkyaffs2 --all-root $(TARGET_DIR) $@

对比我手动用的:mkyaffs2 --inband-tags -p 2048 rootfs rootfs_yaffs2.img
--------------------------------------------
比较这两个mkyaffs2的help:
mkyaffs2 0.2.9_20120815 - A utility to make the yaffs2 image

Usage: mkyaffs2 [-h|--help] [-e|--endian] [-v|--verbose]
                [-p|--pagesize pagesize] [-s|sparesize sparesize]
                [-o|--oobimg oobimage] [--all-root] [--yaffs-ecclayout]
                [--nuc970-ecclayout][-i|--inband-tags]
                dirname imgfile

Options:
  -h                 display this help message and exit.
  -e                 convert endian differed from local machine.
  -v                 verbose details instead of progress bar.
  -p pagesize        page size of target device.
                     (512|2048(default)|4096|(8192|16384) bytes)
  -s sparesize       spare size of target device.
                     (default: pagesize/32 bytes; max: pagesize)
  -o oobimage        load external oob image file.
  --all-root         all files in the target system are owned by root.
  --yaffs-ecclayout  use yaffs oob scheme instead of the Linux MTD default.
  --nuc970-ecclayout use nuc970 oob scheme instead of the Linux MTD default.
  -b nuc970-bch      The BCH algorithm is used to select the ECC algorithm
                     for data protecting.
                     (0:BCH_T4(default)|1:BCH_T8|2:BCH_T12|3:BCH_T15|4:BCH_T24)
  --inband-tags     Using in-band tags.


mkyaffs2 0.2.9 - A utility to make the yaffs2 image

Usage: mkyaffs2 [-h|--help] [-e|--endian] [-v|--verbose]
                [-p|--pagesize pagesize] [-s|sparesize sparesize]
                [-o|--oobimg oobimage] [--all-root] [--yaffs-ecclayout]
                dirname imgfile

Options:
  -h                 display this help message and exit.
  -e                 convert endian differed from local machine.
  -v                 verbose details instead of progress bar.
  -p pagesize        page size of target device.
                     (512|2048(default)|4096|(8192|16384) bytes)
  -s sparesize       spare size of target device.
                     (default: pagesize/32 bytes; max: pagesize)
  -o oobimage        load external oob image file.
  --all-root         all files in the target system are owned by root.
  --yaffs-ecclayout  use yaffs oob scheme instead of the Linux MTD default.

最近编辑记录 Gentlepig (2019-07-17 14:25:29)

离线

楼主 #9 2023-01-17 14:46:08

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: buildroot制作根文件系统的一些疑问,一些命令提示需要root用户,命令提示符前不显示路径,屏幕上如何显示命令提示符...

哈,两年半后再次编译nuc972 buildroot,又遇到了同样的问题,竟然搜到了之前的求助帖。

关于第二个问题,现在还是修改/etc/profile文件,/u显示用户名,/h显示主机明,/w显示路径。
其实,如果能在buildroot里设置修改完就好了。

现在又多了个问题。发现之前构建的根文件系统里/sbin目录下有reboot命令,这次我构建的根文件系统里,没有reboot这个命令。
群友说这个是busybox实现的,但我在make busybox-menuconfig里搜reboot,没搜到相关。
那么,如何增加reboot命令呢?

-------------------------------------

哈,不知道动了哪里,现在有reboot命令了。

最近编辑记录 Gentlepig (2023-01-18 09:04:37)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn