20230427 シリアルポートでログインせずにcv1826のbuildrootを設定する方法 2
2023/4/27 16:46
進行状況: パスワードは削除できますが、ユーザー名は削除できません!
1、
Z:\buildroot1\buildroot\configs\cvitek_cv182x_defconfig
BR2_TOOLCHAIN_EXTERNAL_GCC_6=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_6=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
# BR2_TOOLCHAIN_EXTERNAL_HAS_SSP_STRONG が設定されていない
BR 2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_TARGET_GENERIC_HOSTNAME="yd-dictpen"
BR2_TARGET_GENERIC_ISSUE="YD Buildroot へようこそ"
# BR2_INIT_NONE が設定されていない
BR2_TARGET_GENERIC_ROOT_PASSWD ="ルート"
BR2_ROOTFS_OVERLAY="ボード/cvitek/cv1826/overlay-32"
BR2_INIT_BUSYBOX=y
BR2_PACKAGE_BUSYBOX=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_PACKAGE_INITSCRIPTS=y
修正:
BR2_TOOLCHAIN_EXTERNAL_GCC_6=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_6=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
# BR2_TOOLCHAIN_EXTERNAL _HAS_SSP_STRONG が設定されていません
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_TARGET_GENERIC_HOSTNAME="yd-dictpen"
BR2_TARGET_GENERIC_ISSUE="YD Buildroot へようこそ" # BR2_INIT_NONE
が設定されていません BR2_ROOTFS_OVERLAY="ボード/cvitek/cv1826/overlay-32"BR2_INIT_BUSYBOX=y
BR2_PACKAGE_BUSYBOX=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_PACKAGE_INITSCRIPTS=y
LOG情報:
Number Start End Size File system Name Flags
1 4194kB 12.6MB 8389kB BOOT msftdata
2 12.6MB 13.1MB 524kB MISC msftdata
3 13.1MB 13.6MB 524kB PIC msftdata
4 13.6MB 13.8MB 131kB ENV msftdata 5 13. 8MB 559MB
545MB ext4 ROOTFS msftdata
6 559MB 601MB 41.9MB システム msftdata
7 601MB 3673MB 3072MB ext4 データ msftdata
e2fsck 1.46.2 (2021 年 2 月 28 日)
CFG: クリーン、15/960 ファイル、2549/2551 ブロック
resize2fs 1.46.2 (2021 年 2 月 28 日)
/dev/mmcblk0p7 のファイルシステムは /mnt にマウントされています。オンラインでのサイズ変更が必要
old_desc_blocks = 1, new_desc_blocks = 2
/dev/mmcblk0p7 のファイルシステムは現在、7488219 (4k) ブロックの長さです。
udev を使用した /dev への入力: 完了
ランダム シードの保存: OK
システム メッセージ バスの起動: 完了
bluetoothd の起動: OK
ネットワークの開始: OK
wlan0 の開始: ifconfig: SIOCGIFFLAGS: そのようなデバイスはありません
wpa_supplicant が正常に初期化されました
インターフェイス wlan0 フラグを読み取ることができませんでした: そのようなデバイスはありません
nl80211: ドライバーは認証/関連付けまたは接続コマンドをサポートしていません nl80211
: deinit ifname=wlan0 disabled_11b_rates=0
できませんでしたインターフェイス wlan0 フラグの読み取り: そのようなデバイスはありません
wlan0: ドライバー インターフェイスの初期化に失敗しました
adbd の起動: udhcpc: SIOCGIFINDEX: そのようなデバイスはありません
0 ファイル
2 in ep
1 out ep
1 ファイル
3 in ep
2 out ep
2 ファイル
OK
install_listener('tcp:5037','*smartsocket*')
Starting MCU: load mcu fw: /lib/firmware/mercury_mcu_fw.bin
size = 7066
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0101 00:00:05.430665 339 server.cpp:442] MTP server starting...
done
ようこそYD Buildroot へ
yd-dictpen login: root
#
#
#
入力パスワードが root でない場合、パスワードの入力を求められます:
Welcome to YD Buildroot
yd-dictpen login:
Welcome to YD Buildroot
yd-dictpen login: 1
Password:
Login illegal
yd-dictpen login: root
#
#
#
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/buildroot1$ cd buildroot/ rootroot@rootroot- HP
-ZHAN-66-Pro -A-14-G3:~/buildroot1/buildroot$
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/buildroot1/buildroot$ make menuconfig
xx ルート FS スケルトン (デフォルトのターゲット スケルトン) ---> xx
xx (yd-dictpen) システム ホスト名 xx
xx (YD Buildroot へようこそ) システム バナー xx
xx パスワード エンコーディング (sha-256) ---> xx
xx 初期化システム ( BusyBox) ---> xx
xx /dev 管理 (devtmpfs + eudev を使用した動的) ---> xx
xx (system/device_table.txt) パーミッション テーブルへのパス xx
xx [ ] デバイス テーブル xx の拡張属性をサポート
xx [ ] /bin、/sbin、および /lib には /usr へのシンボリック リンクを使用します。 xx
xx [*] パスワード xx
xx (root)
で root ログインを有効にします。 xx
xx [*] ブート後に getty (ログインプロンプト) を実行 ---> xx
xx [*] ブート中にルートファイルシステムを読み書き
可能に再マウント xx xx () DHCP xx
xx (/bin:/sbin: /usr/bin:/usr/sbin) システムのデフォルト PATH xx を設定します
xx [*] 不要なロケールを消去する xx
xx (C en_US) 保持するロケール xx
xx () ロケール データを生成する xx
xx [ ] ネイティブ言語サポート (NLS) を有効にする xx
xx -*- タイムゾーン情報をインストールする xx
xx (デフォルト) タイムゾーン リスト xx
xx (Etc/UTC) デフォルトの現地時間 xx
xx () ユーザーテーブルへのパス xx
xx (board/cvitek/cv1826/overlay-32) ルート ファイルシステム オーバーレイ ディレクトリ xx
xx () ファイル システム イメージを作成する前に実行するカスタム スクリプト xx
xx () fakeroot 環境内で実行する
カスタム スクリプトファイルシステム イメージ xx
修正:
xx ルート FS スケルトン (デフォルト ターゲット スケルトン) ---> xx
xx (yd-dictpen) システム ホスト名 xx
xx (YD Buildroot へようこそ) システム バナー xx
xx パスワード エンコーディング (sha-256) ---> xx
xxシステムの初期化 (BusyBox) ---> xx
xx /dev 管理 (devtmpfs + eudev を使用した動的) ---> xx
xx (system/device_table.txt) 許可テーブルへのパス xx
xx [ ] デバイス テーブルの拡張属性をサポート xx
xx [ ] /bin、/sbin、および /lib には /usr へのシンボリック リンクを使用します xx
xx [*] パスワード xx
xx でルート ログインを有効にします () ルート パスワード xx
xx /bin/sh (busybox のデフォルト シェル) ---> xx
xx [*] ブート後に getty (ログイン プロンプト) を実行 ---> xx
xx [*] ブート中にルート ファイルシステムを読み書き
可能に再マウント xx xx () DHCP xx
xx (/bin:/sbin:/ usr/bin:/usr/sbin) システムのデフォルト PATH xx を設定します
xx [*] 不要なロケールを消去する xx
xx (C en_US) 保持するロケール xx
xx () ロケール データを生成する xx
xx [ ] ネイティブ言語サポート (NLS) を有効にする xx
xx -*- タイムゾーン情報をインストールする xx
xx (デフォルト) タイムゾーン リスト xx
xx (Etc/UTC) デフォルトの現地時間 xx
xx () ユーザーテーブルへのパス xx
xx (board/cvitek/cv1826/overlay-32) ルート ファイルシステム オーバーレイ ディレクトリ xx
xx () ファイル システム イメージを作成する前に実行するカスタム スクリプト xx
xx () fakeroot 環境内で実行する
カスタム スクリプトファイルシステム イメージ xx
xx xx
xx xx
http://e.betheme.net/article/show-999739.aspx?action=onClick
参照ブログ:
Buildroot ルート ファイル システム権限テーブル、ユーザー テーブル、デバイス管理
リファレンス マニュアル: buildroot マニュアル
、デフォルトのルート ユーザー、あなたはmake menuconfig を使用して構成できます; パスワードは下のメニューで設定されます;
システム構成 --->() root パスワード
3、继续修正:
BR2_TOOLCHAIN_EXTERNAL_GCC_6=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_6=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
# BR2_TOOLCHAIN_EXTERNAL_HAS_SSP_STRONGが設定されていない
BR2_TOOLCHAIN_EXTERNAL_CXX=y
# BR2_TARGET_GENERIC_HOSTNAME="yd-dictpen"
#BR2_TARGET_GENERIC_ISSUE="YD Buildroot へようこそ"
# BR2_INIT_NONE が設定されていません
BR2_TARGET_GENERIC_ROOT_PASSWD=""
BR2_ROOTFS_OVERLAY= 「ボード/cvitek/cv1826/overlay-32」
BR2_INIT_BUSYBOX=y
BR2_PACKAGE_BUSYBOX=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_PACKAGE_INITSCRIPTS=y
LOG はまだユーザー名が存在することを発見し、パスワードは削除されました!
Buildroot へようこそ
buildroot ログイン: root
#
#
使用できるファイル:
Z:\buildroot1\buildroot\package\sysvinit\inittab
# /etc/inittab
#
# この inittab は sysvinit の基本的な inittab サンプルであり、
BusyBox の Buildroot のデフォルトの inittab #を模倣しています
。
si0::sysinit:/bin/mount -t proc proc /proc
si1::sysinit:/bin/mount -o remount,rw /
si2::sysinit:/bin/mkdir -p /dev/pts /dev/shm
si3 ::sysinit:/bin/mount -a
si4::sysinit:/sbin/swapon -a
si5::sysinit:/bin/ln -sf /proc/self/fd /dev/fd 2>/dev/null
si6: :sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin 2>/dev/null
si7::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout 2>/dev/null
si8::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr 2>/dev/null
si9::sysinit:/bin/hostname -F /etc/hostname
rcS:12345:wait:/etc/init.d/rcS
# S0:1:respawn:-/bin/sh # GENERIC_SERIAL
# 3 本指敬礼のためにやるべきこと
#ca::ctrlaltdel:/sbin/reboot
# 再起動前に行うこと
shd0:06:wait:/etc/init.d/rcK
shd1:06:wait:/sbin/swapoff -a
shd2:06:wait:/bin/umount -a -r
# 通常の停止または再起動アクション
hlt0:0:wait:/sbin/halt -dhp
reb0:6:wait:/sbin/reboot
Z:\buildroot1\buildroot\package\busybox\inittab
# /etc/inittab
#
# Copyright (C) 2001 Erik Andersen <[email protected]>
#
# 注: BusyBox init はランレベルをサポートしていません。runlevels フィールドは
# BusyBox init によって完全に無視されます。ランレベルが必要な場合は、
# sysvinit を使用します。
#
# 各エントリのフォーマット: <id>:<runlevels>:<action>:<process>
#
# id == 実行する tty、または /dev/console の場合は空
# runlevels == 無視
# action == の 1 つsysinit, respawn, askfirst, wait, and once
# process == 実行するプログラム
# システム起動
::sysinit:/bin/mount -t proc proc /proc
::sysinit:/bin/mount -o remount,rw / ::
sysinit:/bin/mkdir -p /dev/pts /dev/shm
::sysinit:/bin/mount -a
::sysinit:/sbin/swapon -a
null::sysinit:/bin/ln -sf /proc/self/fd /dev/fd
null::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin
null::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout
null::sysinit:/bin/ln -sf /proc /self/fd/2 /dev/stderr
::sysinit:/bin/hostname -F /etc/hostname
# rc スクリプトを実行
::sysinit:/etc/init.d/rcS
# シリアルポートに getty を配置
#ttyS0::respawn:-/bin/sh # GENERIC_SERIAL
# 3本指敬礼でやること
#::ctrlaltdel:/sbin/reboot
# 再起動前にやること
::shutdown:/etc/init.d/rcK
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
Z:\buildroot1\buildroot\package\sysvinit\sysvinit.mk
###################################### ############################################
#
# sysvinit
#
## #################################################### ############################
SYSVINIT_VERSION = 2.99
SYSVINIT_SOURCE = sysvinit-$(SYSVINIT_VERSION).tar.xz
SYSVINIT_SITE = http://download.savannah.nongnu.org/releases/sysvinit
SYSVINIT_LICENSE = GPL-2.0+
SYSVINIT_LICENSE_FILES = コピー
SYSVINIT_CPE_ID_VENDOR = sysvinit_プロジェクト
SYSVINIT_MAKE_OPTS = SYSROOT=$(STAGING_DIR)
ifeq ($(BR2_PACKAGE_LIBSELINUX),y)
SYSVINIT_DEPENDENCIES += libselinux
SYSVINIT_MAKE_OPTS += WITH_SELINUX="yes"
endif
define SYSVINIT_BUILD_CMDS
$(TARGET_CONFIGURE_OPTS) $(MAKE) $(SYSVINIT_MAKE_OPTS) -C $(@D)/src
endef
halt init shutdown killall5 で x にSYSVINIT_INSTALL_TARGET_CMDS を定義します。do \
$(INSTALL) -D -m 0755 $(@D)/src/$$x $(TARGET_DIR)/sbin/$$x || 出口1; \
done
$(INSTALL) -D -m 0644 package/sysvinit/inittab $(TARGET_DIR)/etc/inittab
ln -sf /sbin/halt $(TARGET_DIR)/sbin/reboot
ln -sf /sbin/halt $(TARGET_DIR) /sbin/poweroff
ln -sf killall5 $(TARGET_DIR)/sbin/pidof
endef
ifeq ($(BR2_TARGET_GENERIC_GETTY),y)
define SYSVINIT_SET_GETTY
$(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(shell echo $(SYSTEM_GETTY_PORT) | tail -c+4)::respawn:-/ bin/sh #~' \
$(TARGET_DIR)/etc/inittab
endef
else
define SYSVINIT_SET_GETTY
$(SED) '/# GENERIC_SERIAL$$/s~^.*#~# S0:1:respawn:-/bin/sh # ~' \
$(TARGET_DIR)/etc/inittab
endef
endif # BR2_TARGET_GENERIC_GETTY
SYSVINIT_TARGET_FINALIZE_HOOKS += SYSVINIT_SET_GETTY
SYSVINIT_TARGET_FINALIZE_HOOKS += SYSTEM_REMOUNT_ROOT_INITTAB
$(eval $(汎用パッケージ))