source: bootcd/isolinux/syslinux-6.03/com32/lua/doc/syslinux.asc @ e16e8f2

Last change on this file since e16e8f2 was e16e8f2, checked in by Edwin Eefting <edwin@datux.nl>, 3 years ago

bootstuff

  • Property mode set to 100644
File size: 6.5 KB
Line 
1Syslinux LUA User Guide
2=======================
3Marcel Ritter <Marcel.Ritter@rrze.uni-erlangen.de>
4
5Invocation
6----------
7
8Running +lua.c32+ only results in an interactive shell.
9......................................................
10KERNEL lua.c32
11......................................................
12
13By using the +APPEND+ parameter you can specify a lua
14script to be executed:
15......................................................
16KERNEL lua.c32
17APPEND /testit.lua
18......................................................
19
20Modules
21-------
22
23Modules must be explicitly loaded into the namespace
24before use, for example:
25......................................................
26syslinux = require ("syslinux")
27......................................................
28
29SYSLINUX
30~~~~~~~~
31
32.syslinux.version()
33
34Returns version string
35
36.syslinux.derivative()
37
38Returns running Syslinux's derivative (ISOLINUX, PXELINUX or SYSLINUX).
39See com32/lua/test/syslinux-derivative.lua for an example.
40
41.syslinux.sleep(s)
42
43Sleep for +s+ seconds
44
45.syslinux.msleep(ms)
46
47Sleep for +ms+ milliseconds
48
49.run_command(command)
50
51Execute syslinux command line +command+.
52
53_Example_:
54......................................................
55        syslinux.run_command("memdisk initrd=/dos/BIOS/FSC-P7935-108.img raw")
56......................................................
57
58.run_default()
59
60FIXME
61
62.local_boot()
63
64FIXME
65
66.final_cleanup()
67
68FIXME
69
70.boot_linux(kernel, cmdline, [mem_limit], [videomode])
71
72FIXME
73
74.run_kernel_image(kernel, cmdline, ipappend_flags, type)
75
76FIXME
77
78.loadfile(filname)
79
80Load file +filename+ (via TFTP)
81
82.filesize(file)
83
84Return size of +file+ (loaded by loadfile())
85
86.filename(file)
87
88Return name of +file+ (loaded by loadfile())
89
90.in itramfs_init()
91
92Return empty initramfs object
93
94.initramfs_load_archive(initramfs, filename)
95
96Load contents of +filename+ into +initramfs+. Initialize
97+initramfs+ with initramfs_init() before use.
98
99.initramfs_add_file(initramfs, file)
100
101Adds +file+ to +initramfs+. +initramfs+ needs to be
102initialized, +file+ has been loaded by loadfile().
103
104_Example_:
105......................................................
106        -- get nice output
107        printf = function(s,...)
108                   return io.write(s:format(...))
109                 end -- function
110       
111        kernel = syslinux.loadfile("/SuSE-11.1/x86_64/linux")
112       
113        printf("Filename/size: %s %d\n", syslinux.filename(kernel), syslinux.filesize(kernel))
114       
115        initrd = syslinux.loadfile("/SuSE-11.1/x86_64/initrd")
116       
117        printf("Filename/size: %s %d\n", syslinux.filename(initrd), syslinux.filesize(initrd))
118       
119        initrd = syslinux.initramfs_init()
120        syslinux.initramfs_load_archive(initrd, "/SuSE-11.1/x86_64/initrd");
121       
122        syslinux.boot_it(kernel, initrd, "init=/bin/bash")
123       
124        syslinux.sleep(20)
125       
126......................................................
127
128
129
130DMI
131~~~
132
133.dmi_supported()
134
135Returns +true+ if DMI is supported on machine, +false+ otherwise.
136
137.dmi_gettable()
138
139Returns a list if key-value pairs. The key is one of the DMI property strings:
140FIXME list
141
142_Example_:
143......................................................
144        if (dmi.supported()) then
145       
146          dmitable = dmi.gettable()
147       
148          for k,v in pairs(dmitable) do
149            print(k, v)
150          end
151       
152          print(dmitable["system.manufacturer"])
153          print(dmitable["system.product_name"])
154          print(dmitable["bios.bios_revision"])
155       
156          if ( string.match(dmitable["system.product_name"], "ESPRIMO P7935") ) then
157            print("Matches")
158            syslinux.run_command("memdisk initrd=/dos/BIOS/FSC-P7935-108.img raw")
159          else
160            print("Does not match")
161            syslinux.run_command("memdisk initrd=/dos/BIOS/FSC-P7935-108.img raw")
162          end
163       
164        end
165
166......................................................
167
168
169PCI
170~~~
171
172.pci_getinfo()
173
174Return list of value pairs (device_index, device) of all PCI devices.
175
176.pci_getidlist(filename)
177
178Load a tab separated list of PCI IDs and their description.
179Sample files can be found here: http://pciids.sourceforge.net/
180
181
182_Example_:
183......................................................
184-- get nice output
185printf = function(s,...)
186           return io.write(s:format(...))
187         end
188
189-- get device info
190pciinfo = pci.getinfo()
191
192-- get plain text device description
193pciids = pci.getidlist("/pci.ids")
194
195-- list all pci busses
196for dind,device in pairs(pciinfo) do
197
198  -- search for device description
199  search = string.format("%04x%04x", device['vendor'], device['product'])
200
201  printf(" %04x:%04x:%04x:%04x = ", device['vendor'], device['product'],
202                        device['sub_vendor'], device['sub_product'])
203
204  if ( pciids[search] ) then
205         printf("%s\n", pciids[search])
206  else
207         printf("Unknown\n")
208  end
209end
210
211-- print(pciids["8086"])
212-- print(pciids["10543009"])
213-- print(pciids["00700003"])
214-- print(pciids["0070e817"])
215-- print(pciids["1002437a1002437a"])
216......................................................
217
218
219VESA
220~~~~
221
222.getmodes()
223
224Return list of available VESA modes.
225
226_Example_:
227......................................................
228        -- get nice output
229        printf = function(s,...)
230                   return io.write(s:format(...))
231                 end
232       
233        -- list available vesa modes
234        -- only one supported right now, not of much use
235        modes = vesa.getmodes()
236       
237        for mind,mode in pairs(modes) do
238           printf("%04x: %dx%dx%d\n", mode['mode'], mode['hres'], mode['vres'], mode['bpp'])
239        end
240......................................................
241
242
243.setmode()
244
245Set (only currently supported) VESA mode.
246
247.load_background(filename)
248
249Load +filename+ from TFTP, and use it as background image.
250
251_Example_:
252......................................................
253        -- get nice output
254        printf = function(s,...)
255                   return io.write(s:format(...))
256                 end
257       
258        -- lets go to graphics land
259        vesa.setmode()
260       
261        printf("Hello World! - VESA mode")
262       
263        -- some text to display "typing style"
264        textline=[[
265        From syslinux GSOC 2009 home page:
266       
267        Finish the Lua engine
268       
269        We already have a Lua interpreter integrated with the Syslinux build. However, right now it is not very useful. We need to create a set of bindings to the Syslinux functionality, and have an array of documentation and examples so users can use them.
270       
271        This is not a documentation project, but the documentation deliverable will be particularly important for this one, since the intended target is system administrators, not developers.
272        ]]
273       
274       
275        -- do display loop
276        -- keep in mind: background change will not erase text!
277        while ( true ) do
278       
279        vesa.load_background("/background1.jpg")
280       
281        syslinux.sleep(1)
282       
283        for i = 1, #textline do
284            local c = textline:sub(i,i)
285            printf("%s", c)
286            syslinux.msleep(200)
287        end
288       
289        syslinux.sleep(10)
290
291......................................................
292
Note: See TracBrowser for help on using the repository browser.