Embedded Linux A-Z

Embedded Linux A-Z

    • About
    • Beaglebone Black
    • STM32MP157
  • Facebook
  • GitHub
  • LinkedIn

[Yocto-BBB] 3. Thêm mật khẩu cho User

Ở 2 bài trước, ta đang không cài mật khẩu cho user root. Đến bài này mình sẽ thêm mật khẩu (do không có sudo, nên thêm cho root luôn :v)

(Nếu các bạn gặp khó khăn trong quá trình thực hành theo blog, các bạn có thể tham khảo video thực hành của mình ở cuối bài )

  1. 1. Tài liệu từ Yocto Reference Manual
  2. 2. Tạo core-image-minimal.bbappend
    1. 2.1 Tạo meta layer meta-bbb
    2. 2.2 Tạo recipe-core và add core-image-minimal
      1. 2.3 Build lại và kết nối qua UART

1. Tài liệu từ Yocto Reference Manual

Dựa theo Yocto Reference Manual mục 7.38

Ta hoàn toàn có thể sử dụng usermod, useradd trong biến EXTRA_USER_PARAMS để thêm user hoặc set password cho user.

Để làm được điều này ta cần inherit class extrausers. Hiện tại ta đang build core-image-minimal, nên ta cần tạo bbappend cho chính recipe này

2. Tạo core-image-minimal.bbappend

Đầu tiên ta cần biết core-image-minimal.bb nằm ở đâu, để ta có thể tạo cấu trúc folder đúng

Gõ trên thanh tìm kiếm ta được meta/recipes-core/images

Như đã mô tả ở bài trước về bitbake append, ta ta cần tạo 1 meta-layers riêng cho dễ thay đổi ghi đè lại nếu cần từ bitbake recipes gốc, ở đây làm cho board beaglebone black nên mình tạo meta-bbb

2.1 Tạo meta layer meta-bbb

bitbake-layers create-layers meta-bbb
bitbake-layers add-layers meta-bbb
  • create-layers sẽ tạo ra 1 layers theo cấu trúc mẫu có dạng giống như sau
  • add-layers là sẽ add layers mới tạo vào file bblayers.conf

2.2 Tạo recipe-core và add core-image-minimal

Sau khi đã tạo meta-bbb thành công, thì ta tạo folder recipes-core/image với cấu trúc như sau

zk47@zk47-ltu:~/Learning/poky/meta-bbb/recipes-core$ tree
.
├── images
│ └── core-image-minimal.bbappend

Nội dung file core-image-minimal.bbappend giống với miêu tả từ Reference Manual

# User "root" has password set to "test" in the image.
# printf "%q" $(mkpasswd -m sha256crypt test)
# \$5\$1ywTDE4jLgPDskTp\$yK5Ap.2xjc5gYeFQ4MGvR6C0VzA4VDSMIFkQ5.TJO84
inherit extrausers
PASSWD = "\$5\$y9Aeg5ctwntRHo/g\$CAKtoTfQg7VPGfVAMGo5ZG/0GJLn3AD0JdoQ.i0dDFC"
EXTRA_USERS_PARAMS = "\
    usermod -p '${PASSWD}' root; \
    "

Ở đây mình không set trực tiếp password, mà sẽ hash nó qua sha256 trước (User : root, Password : test)

Mình có push meta-bbb này lên github https://github.com/Zk47T/meta-bbb, các bạn có thể tham khảo thêm, khi clone về các bạn nhớ thêm vào bblayers.conf nhé

bitbake-layers add-layers ../meta-bbb

Nội dung file bblayers.conf sẽ như sau

# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
BBLAYERS ?= " \
  /home/zk47/Learning/poky/meta \
  /home/zk47/Learning/poky/meta-yocto-bsp \
  /home/zk47/Learning/poky/meta-openembedded/meta-oe \
  /home/zk47/Learning/poky/meta-arm/meta-arm-toolchain \
  /home/zk47/Learning/poky/meta-arm/meta-arm \
  /home/zk47/Learning/poky/meta-ti/meta-ti-bsp \
  /home/zk47/Learning/poky/meta-ti/meta-ti-extras \  
  /home/zk47/Learning/poky/meta-bbb \
"

2.3 Build lại và kết nối qua UART

Các bạn lưu ý bất kỳ khi nào mình thay đổi 1 recipes nào bằng bbappend, hay thay đổi trong bb file. Ta nên cleanall lại nó trước khi build. Việc này sẽ xóa output build được tại build-bbb

bitbake -c cleanall core-image-minimal
bitbake core-image-minimal

Vậy là đã setup thành công

–> Tuy nhiên còn cái khiến mình chưa thấy đẹp là nó đang hiện dòng chữ Poky (Yocto Project Reference Distro). Mình muốn thay đổi nó tiếp.

–> Các bạn đón đọc bài 4, mình sẽ đi đến thay đổi Distro Description cũng như Banner để trình đăng nhập được đẹp hơn, tương tự như với ví dụ Orange Pi sau

Chia sẻ:

  • Chia sẻ trên X (Mở trong cửa sổ mới) X
  • Chia sẻ lên Facebook (Mở trong cửa sổ mới) Facebook
Thích Đang tải…
Trước đó
Kế tiếp

Bình luận về bài viết này Hủy trả lời

  • Facebook
  • GitHub
  • LinkedIn
  • YouTube
  • TikTok
 

Đang tải Bình luận...
 

    • Bình luận
    • Đăng lại
    • Theo dõi Đã theo dõi
      • Embedded Linux A-Z
      • Đã có tài khoản WordPress.com? Đăng nhập.
      • Embedded Linux A-Z
      • Theo dõi Đã theo dõi
      • Đăng ký
      • Đăng nhập
      • URL rút gọn
      • Báo cáo nội dung
      • Xem toàn bộ bài viết
      • Quản lý theo dõi
      • Ẩn menu
    %d