b248954676
Based on usb_ecm and other native USB ethernet drivers which share a similar structure. References used to implement this: - FreeBSD urndis driver - [MS-RNDIS].pdf v20140501 - Microsoft list of RNDIS OIDs TODO: - Better handling of "request id" field to make sure the replies we get match up with the requests we sent, and it could allow to have multiple requests in flight. However, the FreeBSD driver doesn't bother to implement this, if you only ever have one request in flight and wait for a reply before sending another, this isn't really needed. - Endian safety, this code will only work on little endian systems for now. Several structures sent/received to/from the device must be little endian, so on big endian platforms a lot of byteswapping will be needed, or the code rewritten to use some smarter object and not a plain struct for all of these. - Investigate if it's possible to send/receive multiple ethernet frames in a single USB transaction for better performance. Our driver structure doesn't really allow for it unless the driver implements some buffering on its own. Change-Id: I2c6dacf0c1aeb6c7c1c112e9b16a63e586ea979a Reviewed-on: https://review.haiku-os.org/c/haiku/+/5281 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
303 lines
6.6 KiB
Plaintext
303 lines
6.6 KiB
Plaintext
# This file defines the content of the minimum Haiku image.
|
|
|
|
SYSTEM_BIN = [ FFilterByBuildFeatures
|
|
addattr alert arp autologin
|
|
beep bfsinfo
|
|
catattr checkfs checkitout chop clear collectcatkeys copyattr
|
|
desklink df diskimage draggers
|
|
driveinfo dstcheck dumpcatalog
|
|
eject error
|
|
fdinfo ffm filepanel finddir findpaths fortune fstrim
|
|
ftpd
|
|
getarch groupadd groupdel groupmod
|
|
hd hey
|
|
ifconfig iroster isvolume
|
|
kernel_debugger keymap keystore
|
|
launch_roster linkcatkeys listarea listattr listimage listdev listfont
|
|
listport listres listsem listusb locale logger login lsindex
|
|
makebootable message mimeset mkfs mkindex
|
|
modifiers mount mountvolume
|
|
netstat notify
|
|
open
|
|
package package_repo passwd pc ping ping6 pkgman prio profile ps
|
|
query quit
|
|
ramdisk rc reindex release renice resattr resizefs rmattr rmindex roster
|
|
route
|
|
safemode screen_blanker screeninfo screenmode setarch setmime settype
|
|
setversion setvolume shutdown
|
|
strace su sysinfo system_time
|
|
tcptester telnet telnetd top
|
|
traceroute trash
|
|
unchop unmount
|
|
urlwrapper useradd userdel
|
|
version vmstat
|
|
waitfor watch writembr@x86,x86_64 xres
|
|
] ;
|
|
|
|
SYSTEM_APPS = [ FFilterByBuildFeatures
|
|
AboutSystem
|
|
BootManager@x86,x86_64
|
|
CharacterMap
|
|
Debugger@libedit DeskCalc Devices DiskProbe DiskUsage DriveSetup
|
|
Expander
|
|
NetworkStatus
|
|
ProcessController
|
|
ShowImage StyledEdit
|
|
Terminal TextSearch
|
|
Workspaces
|
|
] ;
|
|
|
|
DESKBAR_APPLICATIONS =
|
|
CharacterMap
|
|
DeskCalc Devices DiskProbe DiskUsage DriveSetup
|
|
Expander
|
|
StyledEdit
|
|
Terminal
|
|
;
|
|
|
|
DESKBAR_DESKTOP_APPLETS =
|
|
NetworkStatus
|
|
ProcessController
|
|
Workspaces
|
|
;
|
|
|
|
SYSTEM_PREFERENCES = [ FFilterByBuildFeatures
|
|
Appearance
|
|
Backgrounds
|
|
<preference>Deskbar
|
|
FileTypes
|
|
Input
|
|
Keymap
|
|
Locale
|
|
Network Notifications
|
|
Screen Shortcuts
|
|
Time <preference>Tracker
|
|
VirtualMemory
|
|
] ;
|
|
|
|
SYSTEM_DEMOS = ;
|
|
|
|
|
|
rule HaikuImageGetSystemLibs
|
|
{
|
|
return
|
|
# libs with special grist
|
|
[ MultiArchDefaultGristFiles libroot.so : revisioned ]
|
|
[ Libstdc++ForImage ]
|
|
# libs with standard grist
|
|
[ MultiArchDefaultGristFiles [ FFilterByBuildFeatures
|
|
libbe.so libbsd.so libbnetapi.so
|
|
libdebug.so
|
|
libdebugger.so@primary
|
|
libdevice.so
|
|
libgnu.so
|
|
libnetwork.so
|
|
libpackage.so
|
|
libtextencoding.so libtracker.so libtranslation.so
|
|
] ]
|
|
;
|
|
}
|
|
|
|
|
|
rule HaikuImageGetPrivateSystemLibs
|
|
{
|
|
return [ MultiArchDefaultGristFiles [ FFilterByBuildFeatures
|
|
libalm.so
|
|
libpackage-add-on-libsolv.so
|
|
libroot-addon-icu.so
|
|
] ] ;
|
|
}
|
|
|
|
|
|
SYSTEM_SERVERS = [ FFilterByBuildFeatures
|
|
app_server
|
|
debug_server dns_resolver_server
|
|
input_server
|
|
keystore_server
|
|
launch_daemon
|
|
mount_server
|
|
net_server notification_server
|
|
package_daemon power_daemon
|
|
registrar
|
|
syslog_daemon
|
|
] ;
|
|
|
|
SYSTEM_NETWORK_DEVICES =
|
|
ethernet
|
|
loopback
|
|
;
|
|
|
|
SYSTEM_NETWORK_DATALINK_PROTOCOLS =
|
|
<module>arp
|
|
ethernet_frame
|
|
ipv6_datagram
|
|
loopback_frame
|
|
;
|
|
|
|
#SYSTEM_NETWORK_PPP = ipcp modem pap pppoe KPPPManager ;
|
|
|
|
SYSTEM_NETWORK_PROTOCOLS =
|
|
icmp icmp6 ipv4 ipv6
|
|
tcp
|
|
udp unix
|
|
;
|
|
|
|
SYSTEM_ADD_ONS_ACCELERANTS = [ FFilterByBuildFeatures
|
|
framebuffer.accelerant
|
|
x86,x86_64 @{
|
|
vesa.accelerant
|
|
}@ # x86,x86_64
|
|
riscv64 @{
|
|
# ati for qemu, radeon_hd for unmatched
|
|
ati.accelerant
|
|
radeon_hd.accelerant
|
|
}@ # riscv64
|
|
] ;
|
|
|
|
SYSTEM_ADD_ONS_TRANSLATORS =
|
|
STXTTranslator
|
|
;
|
|
|
|
SYSTEM_ADD_ONS_LOCALE_CATALOGS =
|
|
<catalog-addon>plaintext
|
|
;
|
|
|
|
SYSTEM_ADD_ONS_MEDIA = ;
|
|
|
|
SYSTEM_ADD_ONS_MEDIA_PLUGINS = ;
|
|
|
|
SYSTEM_ADD_ONS_PRINT = ;
|
|
|
|
SYSTEM_ADD_ONS_PRINT_TRANSPORT = ;
|
|
|
|
SYSTEM_ADD_ONS_SCREENSAVERS = ;
|
|
|
|
SYSTEM_ADD_ONS_DRIVERS_AUDIO = ;
|
|
|
|
SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD = ;
|
|
|
|
SYSTEM_ADD_ONS_DRIVERS_GRAPHICS = [ FFilterByBuildFeatures
|
|
framebuffer
|
|
x86,x86_64 @{
|
|
vesa
|
|
}@ # x86,x86_64
|
|
riscv64 @{
|
|
# ati for qemu, radeon_hd for unmatched
|
|
ati
|
|
radeon_hd
|
|
}@ # riscv64
|
|
] ;
|
|
|
|
SYSTEM_ADD_ONS_DRIVERS_MIDI = ;
|
|
|
|
SYSTEM_ADD_ONS_DRIVERS_NET = [ FFilterByBuildFeatures
|
|
x86,x86_64 @{
|
|
3com
|
|
atheros813x atheros81xx attansic_l1 attansic_l2
|
|
broadcom440x broadcom570x
|
|
dec21xxx
|
|
ipro100 ipro1000
|
|
intel22x
|
|
jmicron2x0
|
|
marvell_yukon
|
|
nforce
|
|
pcnet
|
|
rtl8139 rtl81xx
|
|
sis19x sis900 syskonnect
|
|
via_rhine vt612x
|
|
}@ # x86,x86_64
|
|
|
|
etherpci
|
|
pegasus
|
|
usb_asix usb_davicom usb_ecm usb_rndis
|
|
wb840
|
|
] ;
|
|
|
|
SYSTEM_ADD_ONS_DRIVERS_POWER = [ FFilterByBuildFeatures
|
|
acpi_button@x86,x86_64
|
|
] ;
|
|
|
|
SYSTEM_ADD_ONS_DRIVERS_SENSOR = [ FFilterByBuildFeatures
|
|
acpi_als@x86,x86_64
|
|
] ;
|
|
|
|
|
|
SYSTEM_ADD_ONS_BUS_MANAGERS = [ FFilterByBuildFeatures
|
|
acpi@x86,x86_64 agp_gart@x86,x86_64 ata
|
|
i2c@x86,x86_64 isa@x86,x86_64
|
|
mmc
|
|
scsi
|
|
pci ps2@x86,x86_64
|
|
fdt@riscv64,arm
|
|
random
|
|
usb
|
|
virtio
|
|
] ;
|
|
|
|
SYSTEM_ADD_ONS_FILE_SYSTEMS =
|
|
attribute_overlay
|
|
bfs bindfs btrfs
|
|
exfat ext2
|
|
fat
|
|
iso9660
|
|
log_overlay
|
|
ntfs
|
|
packagefs
|
|
reiserfs
|
|
udf
|
|
write_overlay
|
|
;
|
|
|
|
# symlink to home on desktop
|
|
AddSymlinkToHaikuImage home Desktop : /boot/home : Home ;
|
|
|
|
# global settings when a package is installed in ~/config
|
|
AddDirectoryToHaikuImage home config settings global ;
|
|
|
|
# user scripts and data files
|
|
local userBootScripts = UserBootscript UserSetupEnvironment.sample ;
|
|
SEARCH on $(userBootScripts) = [ FDirName $(HAIKU_TOP) data config boot ] ;
|
|
AddFilesToHaikuImage home config settings boot : $(userBootScripts) ;
|
|
|
|
SEARCH on <user-first-login>first_login
|
|
= [ FDirName $(HAIKU_TOP) data settings ] ;
|
|
AddFilesToHaikuImage home config settings : <user-first-login>first_login ;
|
|
|
|
local etcDir = [ FDirName $(HAIKU_TOP) data etc ] ;
|
|
local etcFiles = inputrc profile ;
|
|
etcFiles = $(etcFiles:G=etc) ;
|
|
SEARCH on $(etcFiles) = $(etcDir) ;
|
|
AddFilesToHaikuImage system settings etc : $(etcFiles) ;
|
|
|
|
local profileFiles = [ Glob $(etcDir)/profile.d : *.sh ] ;
|
|
profileFiles = $(profileFiles:G=profile-d) ;
|
|
AddDirectoryToHaikuImage system settings etc profile.d ;
|
|
AddFilesToHaikuImage system settings etc profile.d : $(profileFiles) ;
|
|
|
|
local driverSettingsFiles = <driver-settings>kernel ;
|
|
SEARCH on $(driverSettingsFiles)
|
|
= [ FDirName $(HAIKU_TOP) data settings kernel drivers ] ;
|
|
AddFilesToHaikuImage home config settings kernel drivers
|
|
: $(driverSettingsFiles) ;
|
|
|
|
local networkSettingsFiles = <network-settings>services
|
|
<network-settings>hosts ;
|
|
|
|
SEARCH on $(networkSettingsFiles)
|
|
= [ FDirName $(HAIKU_TOP) data settings network ] ;
|
|
AddFilesToHaikuImage system settings network : $(networkSettingsFiles) ;
|
|
|
|
# repository config and cache files
|
|
local repository ;
|
|
for repository in $(HAIKU_REPOSITORIES) {
|
|
local config = [ on $(repository) return $(HAIKU_REPOSITORY_CONFIG_FILE) ] ;
|
|
local cache = [ on $(repository) return $(HAIKU_REPOSITORY_CACHE_FILE) ] ;
|
|
if $(HAIKU_UPDATE_ALL_PACKAGES) {
|
|
HAIKU_INCLUDE_IN_IMAGE on $(config) $(cache) = 1 ;
|
|
}
|
|
AddFilesToHaikuImage system settings package-repositories
|
|
: $(config) : $(repository:G=) ;
|
|
AddFilesToHaikuImage system cache package-repositories
|
|
: $(cache) : $(repository:G=) ;
|
|
}
|