|
1 | 1 | # Description
|
2 | 2 |
|
3 |
| -This program performs a transfer of SMBIOS tables from Host to BMC over IPMI BLOB protocol. |
| 3 | +This repo contains utilities to transfer SMBIOS tables from Host to BMC over IPMI BLOB protocol. |
4 | 4 |
|
5 |
| -# Usage |
6 |
| - |
7 |
| -Install the latest meson: |
8 |
| -``` |
9 |
| -$ pip3 install --user meson |
10 |
| -$ source ~/.profile |
11 |
| -``` |
12 |
| -Build [ipmi-blob-tool](https://github.com/openbmc/ipmi-blob-tool) library: |
13 |
| -``` |
14 |
| -$ cd ~ |
15 |
| -$ git clone https://github.com/openbmc/ipmi-blob-tool.git |
16 |
| -$ cd ipmi-blob-tool |
17 |
| -$ meson setup builddir |
18 |
| -$ cd builddir |
19 |
| -$ meson compile |
20 |
| -``` |
21 |
| -Build and run `smbios_blob_transfer`: |
22 |
| -``` |
23 |
| -$ cd ~ |
24 |
| -$ git clone https://github.com/Kostr/smbios_blob_transfer.git |
25 |
| -$ cd smbios_blob_transfer |
26 |
| -$ g++ smbios_blob_transfer.cpp -L~/ipmi-blob-tool/builddir/src/ -lipmiblob -I~/ipmi-blob-tool/src/ -o smbios_blob_transfer |
27 |
| -$ sudo LD_LIBRARY_PATH=~/ipmi-blob-tool/builddir/src/ ./smbios_blob_transfer |
28 |
| -``` |
29 |
| -After the program execution this file should be created on the BMC: |
30 |
| -``` |
31 |
| -/var/lib/smbios/smbios2 |
32 |
| -``` |
33 |
| - |
34 |
| -If you don't want to pass all the parameters for dynamic library linking, you can install `ipmi-blob-tool` to your system. |
| 5 | +Two implementations are available: |
| 6 | +- [transfer SMBIOS tables from the UEFI firmware (`DXE_DRIVER`)](UEFI) |
| 7 | +- [transfer SMBIOS tables from the OS](OS) |
35 | 8 |
|
36 | 9 | # BMC requirements
|
37 | 10 |
|
@@ -101,62 +74,3 @@ And here is an example of DIMM information display:
|
101 | 74 |
|
102 | 75 | If you want to display PCI devices as well, you should probably check the IBM fork of [webui-vue](https://github.com/ibm-openbmc/webui-vue).
|
103 | 76 |
|
104 |
| -# `smbios_transfer.go` |
105 |
| - |
106 |
| -This program was written as an alternative to Go utility [smbios_transfer.go](https://github.com/u-root/u-root/blob/main/cmds/exp/smbios_transfer/smbios_transfer.go). |
107 |
| - |
108 |
| -If you want to, you can use it instead. |
109 |
| -``` |
110 |
| -$ git clone https://github.com/u-root/u-root.git |
111 |
| -$ cd u-root/cmds/exp/smbios_transfer/ |
112 |
| -$ sudo go run smbios_transfer.go |
113 |
| -``` |
114 |
| - |
115 |
| -If you don't have `go`, you'll need to install it. If you can't use package manager you can find all the downloads at the [https://go.dev/dl/](https://go.dev/dl/): |
116 |
| -``` |
117 |
| -$ cd ~ |
118 |
| -$ wget https://go.dev/dl/go1.19.2.linux-amd64.tar.gz |
119 |
| -$ sudo tar -xvf go1.19.2.linux-amd64.tar.gz |
120 |
| -$ sudo mv go /usr/local |
121 |
| -``` |
122 |
| - |
123 |
| -Add this to your `~/.profile`: |
124 |
| -``` |
125 |
| -export GOPATH=$HOME/go |
126 |
| -export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin |
127 |
| -``` |
128 |
| - |
129 |
| -Now check that `go` is working: |
130 |
| -``` |
131 |
| -source ~/.profile |
132 |
| -$ go version |
133 |
| -go version go1.19.2 linux/amd64 |
134 |
| -``` |
135 |
| - |
136 |
| -Access to smbios table files is not available for ordinary user, so you'll need to execute go program from root: |
137 |
| -``` |
138 |
| -$ sudo -s |
139 |
| -``` |
140 |
| -Therefore you need to midify `~/.profile` for the root user as well: |
141 |
| -``` |
142 |
| -export GOPATH=$HOME/go |
143 |
| -export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin |
144 |
| -``` |
145 |
| -Check that `go` is working for root: |
146 |
| -``` |
147 |
| -$ source ~/.profile |
148 |
| -$ go version |
149 |
| -go version go1.19.2 linux/amd64 |
150 |
| -``` |
151 |
| - |
152 |
| -Now run the `smbios_transfer.go` program: |
153 |
| -``` |
154 |
| -$ cd ~/u-root/cmds/exp/smbios_transfer/ |
155 |
| -$ go run smbios_transfer.go |
156 |
| -``` |
157 |
| -Alternatively you can build the executable and run it without `go`: |
158 |
| -``` |
159 |
| -$ go build smbios_transfer.go |
160 |
| -$ ./smbios_transfer |
161 |
| -``` |
162 |
| - |
0 commit comments