summaryrefslogtreecommitdiff
path: root/target/linux/x86/base-files/lib/preinit/01_sysinfo
blob: 3c21c07615e31a0a4be5124418403e000bf31cf3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
sanitize_name_x86() {
	sed -e '
		y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;
		s/[^a-z0-9_-]\+/-/g;
		s/^-//;
		s/-$//;
	' "$@"
}

do_sysinfo_x86() {
	local vendor product file

	for file in sys_vendor board_vendor; do
		vendor="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
		[ -n "$vendor" ] && break
	done

	for file in product_name board_name; do
		product="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
		[ -n "$product" ] && break
	done

	[ -n "$vendor" -a -n "$product" ] || return

	mkdir -p /tmp/sysinfo

	echo "$vendor $product" > /tmp/sysinfo/model

	sanitize_name_x86 /tmp/sysinfo/model > /tmp/sysinfo/board_name
}

boot_hook_add preinit_main do_sysinfo_x86