Rename Intel NUC machine to Generic x86-64 (#1209)
* Rename Intel NUC machine to Generic x86-64 The Intel NUC machine has evolved and supports various x86-64 machines today. Rename the board. Note that this does not address the migration issue. This will be handled separately. * Update Scripts/Documentation
This commit is contained in:
11
buildroot-external/board/pc/barebox.config
Normal file
11
buildroot-external/board/pc/barebox.config
Normal file
@@ -0,0 +1,11 @@
|
||||
CONFIG_MMU=y
|
||||
CONFIG_MALLOC_SIZE=0x0
|
||||
CONFIG_MALLOC_TLSF=y
|
||||
CONFIG_DRIVER_SERIAL_EFI=y
|
||||
CONFIG_DRIVER_SERIAL_EFI_STDIO=y
|
||||
# CONFIG_SPI is not set
|
||||
CONFIG_DISK=y
|
||||
CONFIG_DISK_WRITE=y
|
||||
CONFIG_CLOCKSOURCE_EFI=y
|
||||
CONFIG_FS_EFI=y
|
||||
CONFIG_FS_EFIVARFS=y
|
||||
20
buildroot-external/board/pc/generic-x86-64/hassos-hook.sh
Executable file
20
buildroot-external/board/pc/generic-x86-64/hassos-hook.sh
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
# shellcheck disable=SC2155
|
||||
|
||||
function hassos_pre_image() {
|
||||
local BOOT_DATA="$(path_boot_dir)"
|
||||
|
||||
mkdir -p "${BOOT_DATA}/EFI/BOOT"
|
||||
mkdir -p "${BOOT_DATA}/EFI/barebox"
|
||||
|
||||
cp "${BINARIES_DIR}/barebox.bin" "${BOOT_DATA}/EFI/BOOT/BOOTx64.EFI"
|
||||
cp "${BR2_EXTERNAL_HASSOS_PATH}/bootloader/barebox-state-efi.dtb" "${BOOT_DATA}/EFI/barebox/state.dtb"
|
||||
|
||||
echo "console=tty1" > "${BOOT_DATA}/cmdline.txt"
|
||||
}
|
||||
|
||||
|
||||
function hassos_post_image() {
|
||||
convert_disk_image_xz
|
||||
}
|
||||
|
||||
24
buildroot-external/board/pc/generic-x86-64/kernel.config
Normal file
24
buildroot-external/board/pc/generic-x86-64/kernel.config
Normal file
@@ -0,0 +1,24 @@
|
||||
CONFIG_EFI_STUB=y
|
||||
|
||||
CONFIG_SCSI_LOWLEVEL=y
|
||||
CONFIG_USB_XHCI_HCD=y
|
||||
CONFIG_BLK_DEV_NVME=y
|
||||
|
||||
# CONFIG_E1000E is not set
|
||||
|
||||
CONFIG_IGB=y
|
||||
|
||||
CONFIG_IWLWIFI=m
|
||||
CONFIG_IWLMVM=m
|
||||
|
||||
CONFIG_DRM_I915=m
|
||||
CONFIG_DRM_I915_CAPTURE_ERROR=y
|
||||
CONFIG_DRM_I915_COMPRESS_ERROR=y
|
||||
CONFIG_DRM_I915_USERPTR=y
|
||||
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_BLOCK=y
|
||||
CONFIG_MMC_SDHCI=y
|
||||
CONFIG_MMC_SDHCI_ACPI=y
|
||||
CONFIG_MMC_SDHCI_PCI=y
|
||||
CONFIG_X86_INTEL_LPSS=y
|
||||
10
buildroot-external/board/pc/generic-x86-64/meta
Normal file
10
buildroot-external/board/pc/generic-x86-64/meta
Normal file
@@ -0,0 +1,10 @@
|
||||
BOARD_ID=generic-x86-64
|
||||
BOARD_NAME="Generic x86-64"
|
||||
CHASSIS=embedded
|
||||
BOOTLOADER=barebox
|
||||
KERNEL_FILE=bzImage
|
||||
BOOT_SYS=efi
|
||||
BOOT_SPL=false
|
||||
DISK_SIZE=6
|
||||
SUPERVISOR_MACHINE=generic-x86-64
|
||||
SUPERVISOR_ARCH=amd64
|
||||
41
buildroot-external/board/pc/ova/hassos-hook.sh
Executable file
41
buildroot-external/board/pc/ova/hassos-hook.sh
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
# shellcheck disable=SC2155
|
||||
|
||||
function hassos_pre_image() {
|
||||
local BOOT_DATA="$(path_boot_dir)"
|
||||
|
||||
mkdir -p "${BOOT_DATA}/EFI/BOOT"
|
||||
mkdir -p "${BOOT_DATA}/EFI/barebox"
|
||||
|
||||
cp "${BINARIES_DIR}/barebox.bin" "${BOOT_DATA}/EFI/BOOT/BOOTx64.EFI"
|
||||
cp "${BR2_EXTERNAL_HASSOS_PATH}/bootloader/barebox-state-efi.dtb" "${BOOT_DATA}/EFI/barebox/state.dtb"
|
||||
|
||||
echo "console=tty1" > "${BOOT_DATA}/cmdline.txt"
|
||||
}
|
||||
|
||||
|
||||
function hassos_post_image() {
|
||||
local HDD_IMG="$(hassos_image_name img)"
|
||||
local HDD_OVA="$(hassos_image_name ova)"
|
||||
local OVA_DATA="${BINARIES_DIR}/ova"
|
||||
|
||||
# Virtual Disk images
|
||||
convert_disk_image_virtual
|
||||
|
||||
convert_disk_image_xz vmdk
|
||||
convert_disk_image_xz vhdx
|
||||
convert_disk_image_xz vdi
|
||||
convert_disk_image_xz qcow2
|
||||
|
||||
# OVA
|
||||
mkdir -p "${OVA_DATA}"
|
||||
rm -f "${HDD_OVA}"
|
||||
|
||||
cp -a "${BOARD_DIR}/home-assistant.ovf" "${OVA_DATA}/home-assistant.ovf"
|
||||
qemu-img convert -O vmdk -o subformat=streamOptimized "${HDD_IMG}" "${OVA_DATA}/home-assistant.vmdk"
|
||||
(cd "${OVA_DATA}" || exit 1; sha256sum --tag home-assistant.* >home-assistant.mf)
|
||||
tar -C "${OVA_DATA}" --owner=root --group=root -cf "${HDD_OVA}" home-assistant.ovf home-assistant.vmdk home-assistant.mf
|
||||
|
||||
# Cleanup
|
||||
rm -f "${HDD_IMG}"
|
||||
}
|
||||
147
buildroot-external/board/pc/ova/home-assistant.ovf
Normal file
147
buildroot-external/board/pc/ova/home-assistant.ovf
Normal file
@@ -0,0 +1,147 @@
|
||||
<?xml version="1.0"?>
|
||||
<Envelope ovf:version="1.0" xml:lang="en-US" xmlns="http://schemas.dmtf.org/ovf/envelope/1" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vbox="http://www.virtualbox.org/ovf/machine" xmlns:vmw="http://www.vmware.com/schema/ovf">
|
||||
<References>
|
||||
<File ovf:id="file1" ovf:href="home-assistant.vmdk"/>
|
||||
</References>
|
||||
<DiskSection>
|
||||
<Info>List of the virtual disks used in the package</Info>
|
||||
<Disk ovf:capacity="34359738368" ovf:diskId="vmdisk1" ovf:fileRef="file1" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" ovf:boot="True" vbox:uuid="5f042839-c478-43d9-9eb0-fd8a902146ec"/>
|
||||
</DiskSection>
|
||||
<NetworkSection>
|
||||
<Info>Logical networks used in the package</Info>
|
||||
<Network ovf:name="Bridged">
|
||||
<Description>Logical network used by this appliance.</Description>
|
||||
</Network>
|
||||
</NetworkSection>
|
||||
<VirtualSystem ovf:id="HomeAssistant">
|
||||
<Info>A virtual machine</Info>
|
||||
<Name>Home Assistant</Name>
|
||||
<ProductSection>
|
||||
<Info>Meta-information about the installed software</Info>
|
||||
<Product>Home Assistant Operating System</Product>
|
||||
<ProductUrl>https://www.home-assistant.io</ProductUrl>
|
||||
</ProductSection>
|
||||
<OperatingSystemSection ovf:id="102" vmw:osType="otherGuest64">
|
||||
<Info>The kind of installed guest operating system</Info>
|
||||
<Description>Linux</Description>
|
||||
</OperatingSystemSection>
|
||||
<VirtualHardwareSection>
|
||||
<Info>Virtual hardware requirements for a virtual machine</Info>
|
||||
<System>
|
||||
<vssd:ElementName>Virtual Hardware Family</vssd:ElementName>
|
||||
<vssd:InstanceID>0</vssd:InstanceID>
|
||||
<vssd:VirtualSystemIdentifier>Home Assistant</vssd:VirtualSystemIdentifier>
|
||||
<vssd:VirtualSystemType>vmx-10</vssd:VirtualSystemType>
|
||||
</System>
|
||||
<Item>
|
||||
<rasd:Caption>2 virtual CPU</rasd:Caption>
|
||||
<rasd:Description>Number of virtual CPUs</rasd:Description>
|
||||
<rasd:ElementName>2 virtual CPU</rasd:ElementName>
|
||||
<rasd:InstanceID>1</rasd:InstanceID>
|
||||
<rasd:ResourceType>3</rasd:ResourceType>
|
||||
<rasd:VirtualQuantity>2</rasd:VirtualQuantity>
|
||||
<vmw:CoresPerSocket ovf:required="false">2</vmw:CoresPerSocket>
|
||||
</Item>
|
||||
<Item>
|
||||
<rasd:AllocationUnits>MegaBytes</rasd:AllocationUnits>
|
||||
<rasd:Caption>2048 MB of memory</rasd:Caption>
|
||||
<rasd:Description>Memory Size</rasd:Description>
|
||||
<rasd:ElementName>2048 MB of memory</rasd:ElementName>
|
||||
<rasd:InstanceID>2</rasd:InstanceID>
|
||||
<rasd:ResourceType>4</rasd:ResourceType>
|
||||
<rasd:VirtualQuantity>2048</rasd:VirtualQuantity>
|
||||
</Item>
|
||||
<Item>
|
||||
<rasd:Address>0</rasd:Address>
|
||||
<rasd:Caption>sataController0</rasd:Caption>
|
||||
<rasd:Description>SATA Controller</rasd:Description>
|
||||
<rasd:ElementName>sataController0</rasd:ElementName>
|
||||
<rasd:InstanceID>3</rasd:InstanceID>
|
||||
<rasd:ResourceSubType>AHCI</rasd:ResourceSubType>
|
||||
<rasd:ResourceType>20</rasd:ResourceType>
|
||||
</Item>
|
||||
<Item ovf:required="false">
|
||||
<rasd:Address>0</rasd:Address>
|
||||
<rasd:Caption>usb</rasd:Caption>
|
||||
<rasd:Description>USB Controller (EHCI)</rasd:Description>
|
||||
<rasd:ElementName>usb</rasd:ElementName>
|
||||
<rasd:InstanceID>4</rasd:InstanceID>
|
||||
<rasd:ResourceType>23</rasd:ResourceType>
|
||||
</Item>
|
||||
<Item>
|
||||
<rasd:AddressOnParent>0</rasd:AddressOnParent>
|
||||
<rasd:Caption>disk1</rasd:Caption>
|
||||
<rasd:Description>Disk Image</rasd:Description>
|
||||
<rasd:ElementName>disk1</rasd:ElementName>
|
||||
<rasd:HostResource>/disk/vmdisk1</rasd:HostResource>
|
||||
<rasd:InstanceID>5</rasd:InstanceID>
|
||||
<rasd:Parent>3</rasd:Parent>
|
||||
<rasd:ResourceType>17</rasd:ResourceType>
|
||||
<vmw:Config ovf:required="false" vmw:key="backing.writeThrough" vmw:value="false"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
|
||||
<rasd:Caption>eth0</rasd:Caption>
|
||||
<rasd:Connection>Bridged</rasd:Connection>
|
||||
<rasd:Description>Ethernet adapter</rasd:Description>
|
||||
<rasd:ElementName>eth0</rasd:ElementName>
|
||||
<rasd:InstanceID>6</rasd:InstanceID>
|
||||
<rasd:ResourceSubType>E1000</rasd:ResourceSubType>
|
||||
<rasd:ResourceType>10</rasd:ResourceType>
|
||||
</Item>
|
||||
<Item ovf:required="false">
|
||||
<rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
|
||||
<rasd:ElementName>Audio</rasd:ElementName>
|
||||
<rasd:InstanceID>11</rasd:InstanceID>
|
||||
<rasd:ResourceSubType>vmware.soundcard.hdaudio</rasd:ResourceSubType>
|
||||
<rasd:ResourceType>1</rasd:ResourceType>
|
||||
</Item>
|
||||
<vmw:Config ovf:required="false" vmw:key="firmware" vmw:value="efi"/>
|
||||
<vmw:ExtraConfig ovf:required="false" vmw:key="cpuid.coresPerSocket" vmw:value="2"/>
|
||||
<vmw:ExtraConfig ovf:required="false" vmw:key="svga.present" vmw:value="TRUE"/>
|
||||
<vmw:ExtraConfig ovf:required="false" vmw:key="usb:1.speed" vmw:value="2"/>
|
||||
<vmw:ExtraConfig ovf:required="false" vmw:key="usb:1.present" vmw:value="TRUE"/>
|
||||
<vmw:ExtraConfig ovf:required="false" vmw:key="usb:1.deviceType" vmw:value="hub"/>
|
||||
<vmw:ExtraConfig ovf:required="false" vmw:key="usb:1.port" vmw:value="1"/>
|
||||
<vmw:ExtraConfig ovf:required="false" vmw:key="usb:1.parent" vmw:value="-1"/>
|
||||
<vmw:ExtraConfig ovf:required="false" vmw:key="ctkEnabled" vmw:value="TRUE"/>
|
||||
<vmw:ExtraConfig ovf:required="false" vmw:key="sata0:0.ctkEnabled" vmw:value="TRUE"/>
|
||||
<vmw:ExtraConfig ovf:required="false" vmw:key="usb:0.present" vmw:value="TRUE"/>
|
||||
<vmw:ExtraConfig ovf:required="false" vmw:key="usb:0.deviceType" vmw:value="hid"/>
|
||||
<vmw:ExtraConfig ovf:required="false" vmw:key="usb:0.port" vmw:value="0"/>
|
||||
<vmw:ExtraConfig ovf:required="false" vmw:key="usb:0.parent" vmw:value="-1"/>
|
||||
</VirtualHardwareSection>
|
||||
<vbox:Machine ovf:required="false" version="1.16-windows" uuid="{cab1600e-df75-47c2-a237-cfb10215b42b}" name="Home Assistant" OSType="Linux_64">
|
||||
<ovf:Info>Complete VirtualBox machine configuration in VirtualBox format</ovf:Info>
|
||||
<Hardware>
|
||||
<CPU count="2"/>
|
||||
<Memory RAMSize="2048"/>
|
||||
<Firmware type="EFI"/>
|
||||
<Display VRAMSize="16"/>
|
||||
<BIOS>
|
||||
<IOAPIC enabled="true"/>
|
||||
</BIOS>
|
||||
<USB>
|
||||
<Controllers>
|
||||
<Controller name="OHCI" type="OHCI"/>
|
||||
<Controller name="EHCI" type="EHCI"/>
|
||||
</Controllers>
|
||||
</USB>
|
||||
<Network>
|
||||
<Adapter slot="0" enabled="true" type="virtio">
|
||||
<BridgedInterface />
|
||||
</Adapter>
|
||||
</Network>
|
||||
<AudioAdapter controller="HDA" enabled="true"/>
|
||||
<RTC localOrUTC="UTC"/>
|
||||
</Hardware>
|
||||
<StorageControllers>
|
||||
<StorageController name="SATA" type="AHCI" PortCount="1">
|
||||
<AttachedDevice type="HardDisk" hotpluggable="false" port="0" device="0">
|
||||
<Image uuid="{5f042839-c478-43d9-9eb0-fd8a902146ec}"/>
|
||||
</AttachedDevice>
|
||||
</StorageController>
|
||||
</StorageControllers>
|
||||
</vbox:Machine>
|
||||
</VirtualSystem>
|
||||
</Envelope>
|
||||
56
buildroot-external/board/pc/ova/kernel.config
Normal file
56
buildroot-external/board/pc/ova/kernel.config
Normal file
@@ -0,0 +1,56 @@
|
||||
CONFIG_EFI_STUB=y
|
||||
|
||||
CONFIG_HOTPLUG_CPU=y
|
||||
CONFIG_MEMORY_HOTPLUG=y
|
||||
CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y
|
||||
CONFIG_MEMORY_HOTREMOVE=y
|
||||
|
||||
CONFIG_VMXNET3=y
|
||||
CONFIG_VMWARE_PVSCSI=y
|
||||
CONFIG_VMWARE_VMCI_VSOCKETS=y
|
||||
CONFIG_VMWARE_VMCI=y
|
||||
CONFIG_VMWARE_BALLOON=y
|
||||
CONFIG_VMWARE_PVSCSI=y
|
||||
|
||||
CONFIG_VIRTIO=y
|
||||
CONFIG_VIRTIO_PCI=y
|
||||
CONFIG_VIRTIO_NET=y
|
||||
CONFIG_VIRTIO_BALLOON=m
|
||||
CONFIG_VIRTIO_INPUT=m
|
||||
CONFIG_VIRTIO_BLK=y
|
||||
CONFIG_VIRTIO_BLK_SCSI=y
|
||||
CONFIG_VIRTIO_CONSOLE=m
|
||||
CONFIG_VIRTIO_VSOCKETS=m
|
||||
CONFIG_VIRTIO_MMIO=y
|
||||
CONFIG_SCSI_VIRTIO=y
|
||||
CONFIG_HW_RANDOM_VIRTIO=y
|
||||
|
||||
CONFIG_FUSION=y
|
||||
CONFIG_FUSION_SPI=y
|
||||
CONFIG_FUSION_SAS=y
|
||||
CONFIG_FUSION_MAX_SGE=128
|
||||
|
||||
CONFIG_SCSI_LOWLEVEL=y
|
||||
CONFIG_USB_XHCI_HCD=y
|
||||
CONFIG_BLK_DEV_NVME=y
|
||||
|
||||
CONFIG_PARAVIRT=y
|
||||
CONFIG_PARAVIRT_SPINLOCKS=y
|
||||
CONFIG_VIRT_DRIVERS=y
|
||||
CONFIG_XEN=y
|
||||
|
||||
CONFIG_HYPERVISOR_GUEST=y
|
||||
CONFIG_HYPERV=y
|
||||
CONFIG_HYPERV_UTILS=m
|
||||
CONFIG_HYPERV_BALLOON=m
|
||||
CONFIG_HYPERV_KEYBOARD=m
|
||||
CONFIG_HYPERV_STORAGE=y
|
||||
CONFIG_HYPERV_NET=y
|
||||
CONFIG_HYPERV_VSOCKETS=m
|
||||
CONFIG_PCI_HYPERV=m
|
||||
CONFIG_PCI_HYPERV_INTERFACE=m
|
||||
CONFIG_FB_HYPERV=y
|
||||
|
||||
CONFIG_IGBVF=m
|
||||
CONFIG_IXGBEVF=m
|
||||
CONFIG_I40EVF=m
|
||||
10
buildroot-external/board/pc/ova/meta
Normal file
10
buildroot-external/board/pc/ova/meta
Normal file
@@ -0,0 +1,10 @@
|
||||
BOARD_ID=ova
|
||||
BOARD_NAME="Open Virtual Appliance"
|
||||
CHASSIS=vm
|
||||
BOOTLOADER=barebox
|
||||
KERNEL_FILE=bzImage
|
||||
BOOT_SYS=efi
|
||||
BOOT_SPL=false
|
||||
DISK_SIZE=32
|
||||
SUPERVISOR_MACHINE=qemux86-64
|
||||
SUPERVISOR_ARCH=amd64
|
||||
@@ -0,0 +1,130 @@
|
||||
From 4e9abe7945370765a9e8e88b01a7ef5f266bf7fd Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <4e9abe7945370765a9e8e88b01a7ef5f266bf7fd.1606682453.git.stefan@agner.ch>
|
||||
From: Steffen Trumtrar <s.trumtrar@pengutronix.de>
|
||||
Date: Fri, 30 Jun 2017 16:53:34 +0200
|
||||
Subject: [PATCH dt-utils 1/3] barebox-state: get devicetree from file
|
||||
|
||||
Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
|
||||
---
|
||||
src/barebox-state.c | 30 ++++++++++++++++++++++--------
|
||||
src/barebox-state.h | 2 +-
|
||||
src/keystore-blob.c | 2 +-
|
||||
3 files changed, 24 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/barebox-state.c b/src/barebox-state.c
|
||||
index f8b8df6..76f9c41 100644
|
||||
--- a/src/barebox-state.c
|
||||
+++ b/src/barebox-state.c
|
||||
@@ -308,7 +308,7 @@ static int state_set_var(struct state *state, const char *var, const char *val)
|
||||
}
|
||||
|
||||
|
||||
-struct state *state_get(const char *name, bool readonly, bool auth)
|
||||
+struct state *state_get(const char *name, const char *filename, bool readonly, bool auth)
|
||||
{
|
||||
struct device_node *root, *node;
|
||||
char *path;
|
||||
@@ -317,11 +317,19 @@ struct state *state_get(const char *name, bool readonly, bool auth)
|
||||
const char *backend_type = NULL;
|
||||
struct state_variable *v;
|
||||
|
||||
- root = of_read_proc_devicetree();
|
||||
- if (IS_ERR(root)) {
|
||||
- pr_err("Unable to read devicetree. %s\n",
|
||||
- strerror(-PTR_ERR(root)));
|
||||
- return ERR_CAST(root);
|
||||
+ if (filename) {
|
||||
+ void *fdt;
|
||||
+
|
||||
+ fdt = read_file(filename, NULL);
|
||||
+ if (fdt)
|
||||
+ root = of_unflatten_dtb(fdt);
|
||||
+ } else {
|
||||
+ root = of_read_proc_devicetree();
|
||||
+ if (IS_ERR(root)) {
|
||||
+ pr_err("Unable to read devicetree. %s\n",
|
||||
+ strerror(-PTR_ERR(root)));
|
||||
+ return ERR_CAST(root);
|
||||
+ }
|
||||
}
|
||||
|
||||
of_set_root_node(root);
|
||||
@@ -372,6 +380,7 @@ static struct option long_options[] = {
|
||||
{"get", required_argument, 0, 'g' },
|
||||
{"set", required_argument, 0, 's' },
|
||||
{"name", required_argument, 0, 'n' },
|
||||
+ {"input", required_argument, 0, 'i' },
|
||||
{"dump", no_argument, 0, 'd' },
|
||||
{"dump-shell", no_argument, 0, OPT_DUMP_SHELL },
|
||||
{"verbose", no_argument, 0, 'v' },
|
||||
@@ -387,6 +396,7 @@ static void usage(char *name)
|
||||
"-g, --get <variable> get the value of a variable\n"
|
||||
"-s, --set <variable>=<value> set the value of a variable\n"
|
||||
"-n, --name <name> specify the state to use (default=\"state\"). Multiple states are allowed.\n"
|
||||
+"-i, --input <name> load the devicetree from a file instead of using the system devicetree.\n"
|
||||
"-d, --dump dump the state\n"
|
||||
"--dump-shell dump the state suitable for shell sourcing\n"
|
||||
"-v, --verbose increase verbosity\n"
|
||||
@@ -424,12 +434,13 @@ int main(int argc, char *argv[])
|
||||
bool readonly = true;
|
||||
int pr_level = 5;
|
||||
int auth = 1;
|
||||
+ const char *dtb = NULL;
|
||||
|
||||
INIT_LIST_HEAD(&sg_list);
|
||||
INIT_LIST_HEAD(&state_list.list);
|
||||
|
||||
while (1) {
|
||||
- c = getopt_long(argc, argv, "hg:s:dvn:qf", long_options, &option_index);
|
||||
+ c = getopt_long(argc, argv, "hg:s:i:dvn:qf", long_options, &option_index);
|
||||
if (c < 0)
|
||||
break;
|
||||
switch (c) {
|
||||
@@ -475,6 +486,9 @@ int main(int argc, char *argv[])
|
||||
++nr_states;
|
||||
break;
|
||||
}
|
||||
+ case 'i':
|
||||
+ dtb = strdup(optarg);
|
||||
+ break;
|
||||
case ':':
|
||||
case '?':
|
||||
default:
|
||||
@@ -515,7 +529,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
list_for_each_entry(state, &state_list.list, list) {
|
||||
- state->state = state_get(state->name, readonly, auth);
|
||||
+ state->state = state_get(state->name, dtb, readonly, auth);
|
||||
if (!IS_ERR(state->state) && !state->name)
|
||||
state->name = state->state->name;
|
||||
if (IS_ERR(state->state)) {
|
||||
diff --git a/src/barebox-state.h b/src/barebox-state.h
|
||||
index bd89cf4..a0f49a5 100644
|
||||
--- a/src/barebox-state.h
|
||||
+++ b/src/barebox-state.h
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef __BAREBOX_STATE__
|
||||
#define __BAREBOX_STATE__
|
||||
|
||||
-struct state *state_get(const char *name, bool readonly, bool auth);
|
||||
+struct state *state_get(const char *name, const char *file, bool readonly, bool auth);
|
||||
char *state_get_var(struct state *state, const char *var);
|
||||
|
||||
#endif /* __BAREBOX_STATE__ */
|
||||
diff --git a/src/keystore-blob.c b/src/keystore-blob.c
|
||||
index 028dd8b..4572431 100644
|
||||
--- a/src/keystore-blob.c
|
||||
+++ b/src/keystore-blob.c
|
||||
@@ -30,7 +30,7 @@ int keystore_get_secret(const char *name, const unsigned char **key, int *key_le
|
||||
if (!state) {
|
||||
struct state *tmp;
|
||||
|
||||
- tmp = state_get(keystore_state_name, true, false);
|
||||
+ tmp = state_get(keystore_state_name, NULL, true, false);
|
||||
if (IS_ERR(tmp))
|
||||
return PTR_ERR(tmp);
|
||||
state = tmp;
|
||||
--
|
||||
2.29.2
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From 4eb260d97419349320aa688866b4cf1eb177df70 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <4eb260d97419349320aa688866b4cf1eb177df70.1606682453.git.stefan@agner.ch>
|
||||
In-Reply-To: <4e9abe7945370765a9e8e88b01a7ef5f266bf7fd.1606682453.git.stefan@agner.ch>
|
||||
References: <4e9abe7945370765a9e8e88b01a7ef5f266bf7fd.1606682453.git.stefan@agner.ch>
|
||||
From: Steffen Trumtrar <s.trumtrar@pengutronix.de>
|
||||
Date: Fri, 30 Jun 2017 16:53:17 +0200
|
||||
Subject: [PATCH dt-utils 2/3] libdt: support finding devices by partuuid
|
||||
|
||||
Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
|
||||
---
|
||||
src/libdt.c | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/src/libdt.c b/src/libdt.c
|
||||
index 4638678..b52f80c 100644
|
||||
--- a/src/libdt.c
|
||||
+++ b/src/libdt.c
|
||||
@@ -2416,6 +2416,18 @@ int of_get_devicepath(struct device_node *partition_node, char **devpath, off_t
|
||||
*/
|
||||
node = partition_node->parent;
|
||||
|
||||
+ if (of_device_is_compatible(node, "fixed-partitions")) {
|
||||
+ const char *uuid;
|
||||
+
|
||||
+ /* when partuuid is specified short-circuit the search for the cdev */
|
||||
+ ret = of_property_read_string(partition_node, "partuuid", &uuid);
|
||||
+ if (!ret) {
|
||||
+ *devpath = basprintf("/dev/disk/by-partuuid/%s", uuid);
|
||||
+
|
||||
+ return 0;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
* Respect flash "partitions" subnode. Use parent of parent in this
|
||||
* case.
|
||||
--
|
||||
2.29.2
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
From 665603ecadb8385dd6c18840d3b0120859a00369 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <665603ecadb8385dd6c18840d3b0120859a00369.1606682453.git.stefan@agner.ch>
|
||||
In-Reply-To: <4e9abe7945370765a9e8e88b01a7ef5f266bf7fd.1606682453.git.stefan@agner.ch>
|
||||
References: <4e9abe7945370765a9e8e88b01a7ef5f266bf7fd.1606682453.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Fri, 13 Nov 2020 10:39:03 +0100
|
||||
Subject: [PATCH dt-utils 3/3] state: use /run to store lockfile
|
||||
|
||||
The current location /var/lock is considered legacy (at least by
|
||||
systemd). Just use /run to store the lockfile and append the usual .lock
|
||||
suffix.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
src/barebox-state.c | 8 +++++---
|
||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/barebox-state.c b/src/barebox-state.c
|
||||
index 76f9c41..53e5eb6 100644
|
||||
--- a/src/barebox-state.c
|
||||
+++ b/src/barebox-state.c
|
||||
@@ -38,6 +38,8 @@
|
||||
#include <dt/dt.h>
|
||||
#include <state.h>
|
||||
|
||||
+#define BAREBOX_STATE_LOCKFILE "/run/barebox-state.lock"
|
||||
+
|
||||
struct state_variable;
|
||||
|
||||
static int __state_uint8_set(struct state_variable *var, const char *val);
|
||||
@@ -515,15 +517,15 @@ int main(int argc, char *argv[])
|
||||
++nr_states;
|
||||
}
|
||||
|
||||
- lock_fd = open("/var/lock/barebox-state", O_CREAT | O_RDWR, 0600);
|
||||
+ lock_fd = open(BAREBOX_STATE_LOCKFILE, O_CREAT | O_RDWR, 0600);
|
||||
if (lock_fd < 0) {
|
||||
- pr_err("Failed to open lock-file /var/lock/barebox-state\n");
|
||||
+ pr_err("Failed to open lock-file " BAREBOX_STATE_LOCKFILE "\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
ret = flock(lock_fd, LOCK_EX);
|
||||
if (ret < 0) {
|
||||
- pr_err("Failed to lock /var/lock/barebox-state: %m\n");
|
||||
+ pr_err("Failed to lock " BAREBOX_STATE_LOCKFILE ": %m\n");
|
||||
close(lock_fd);
|
||||
exit(1);
|
||||
}
|
||||
--
|
||||
2.29.2
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
From c9d56ea8fccf72e1c5d1f224f965e1a8e84d1b7f Mon Sep 17 00:00:00 2001
|
||||
From: Pascal Vizeli <pvizeli@syshack.ch>
|
||||
Date: Wed, 9 May 2018 21:54:58 +0200
|
||||
Subject: [PATCH 1/1] add -i argument to barebox-state call
|
||||
|
||||
---
|
||||
src/bootchooser.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/src/bootchooser.c b/src/bootchooser.c
|
||||
index d5efc0c..c57c2f7 100644
|
||||
--- a/src/bootchooser.c
|
||||
+++ b/src/bootchooser.c
|
||||
@@ -77,6 +77,9 @@ static gboolean barebox_state_get(const gchar* bootname, BareboxSlotState *bb_st
|
||||
g_ptr_array_add(args, g_strdup_printf(BOOTSTATE_PREFIX ".%s.priority", bootname));
|
||||
g_ptr_array_add(args, g_strdup("-g"));
|
||||
g_ptr_array_add(args, g_strdup_printf(BOOTSTATE_PREFIX ".%s.remaining_attempts", bootname));
|
||||
+
|
||||
+ g_ptr_array_add(args, g_strdup("-i"));
|
||||
+ g_ptr_array_add(args, g_strdup("/etc/barebox-state.dtb"));
|
||||
g_ptr_array_add(args, NULL);
|
||||
|
||||
sub = g_subprocess_newv((const gchar * const *)args->pdata,
|
||||
@@ -170,6 +173,9 @@ static gboolean barebox_state_set(GPtrArray *pairs, GError **error)
|
||||
g_ptr_array_add(args, g_strdup("-s"));
|
||||
g_ptr_array_add(args, g_strdup(pairs->pdata[i]));
|
||||
}
|
||||
+
|
||||
+ g_ptr_array_add(args, g_strdup("-i"));
|
||||
+ g_ptr_array_add(args, g_strdup("/etc/barebox-state.dtb"));
|
||||
g_ptr_array_add(args, NULL);
|
||||
|
||||
sub = g_subprocess_newv((const gchar * const *)args->pdata,
|
||||
--
|
||||
2.7.4
|
||||
|
||||
Reference in New Issue
Block a user