x86: use sysfs DMI information to populate sysinfo
Use the DMI data available in sysfs to extract manufacturer and model info
and write it to /tmp/sysinfo/.
The data will be picked up by board_detect and can be used by e.g. LuCI to
display a more appropriate model description.
On an APU board the files will contain the following values:
    # cat /tmp/sysinfo/model
    PC Engines APU
    # cat /tmp/sysinfo/board_name
    pc-engines-apu
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
			
			
This commit is contained in:
		
							
								
								
									
										28
									
								
								target/linux/x86/base-files/lib/preinit/20_sysinfo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								target/linux/x86/base-files/lib/preinit/20_sysinfo
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
	sed -e '
 | 
			
		||||
		y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;
 | 
			
		||||
		s/[^a-z0-9_-]\+/-/g;
 | 
			
		||||
		s/^-//;
 | 
			
		||||
		s/-$//;
 | 
			
		||||
	' /tmp/sysinfo/model > /tmp/sysinfo/board_name
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
boot_hook_add preinit_main do_sysinfo_x86
 | 
			
		||||
		Reference in New Issue
	
	Block a user