mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
Compare commits
1272 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
840d1c1284 | ||
|
|
2205a0cc70 | ||
|
|
e17a470e18 | ||
|
|
c165759199 | ||
|
|
8b0f13c49c | ||
|
|
f41540f15f | ||
|
|
cdb494acdb | ||
|
|
a4c8b6a8f5 | ||
|
|
de0d6de550 | ||
|
|
feceb445a2 | ||
|
|
78cb032bb9 | ||
|
|
b8c55c5371 | ||
|
|
d872a6f00e | ||
|
|
95706f095d | ||
|
|
93563e254f | ||
|
|
58295531f2 | ||
|
|
d86700a0c3 | ||
|
|
0475ea9096 | ||
|
|
6f4a7be809 | ||
|
|
1053ab41fc | ||
|
|
30fa974058 | ||
|
|
576ac3a32d | ||
|
|
16fda20d20 | ||
|
|
1445d84d5c | ||
|
|
8272474613 | ||
|
|
4e635ae672 | ||
|
|
3eacc45935 | ||
|
|
7e5813cc32 | ||
|
|
7ed343cbce | ||
|
|
12ff6827ae | ||
|
|
da50933363 | ||
|
|
4b081c7df5 | ||
|
|
f235359d48 | ||
|
|
8620de2ebe | ||
|
|
c54c63635c | ||
|
|
f006cae713 | ||
|
|
d753bf19ea | ||
|
|
cf64b0f960 | ||
|
|
1b8c952755 | ||
|
|
5c615fcbd1 | ||
|
|
396c10da91 | ||
|
|
84340cbf35 | ||
|
|
455a885659 | ||
|
|
ab29a45e7a | ||
|
|
ea47bb789f | ||
|
|
b69a06ccc3 | ||
|
|
e8fdadca0f | ||
|
|
c037c8f8a5 | ||
|
|
d37b22132e | ||
|
|
2f29c617c1 | ||
|
|
d58f1e154b | ||
|
|
2316d63097 | ||
|
|
30adf74c6f | ||
|
|
0922cfe061 | ||
|
|
26ea29ca86 | ||
|
|
d5336f9450 | ||
|
|
c5175153a7 | ||
|
|
2b7fd7bb0f | ||
|
|
10e600737b | ||
|
|
ca90aaea2b | ||
|
|
f570899328 | ||
|
|
5e06a29656 | ||
|
|
b2dbac07f3 | ||
|
|
03b9784a1b | ||
|
|
0b5b8ed5c8 | ||
|
|
a3c1830a73 | ||
|
|
ba53742159 | ||
|
|
0414bbe451 | ||
|
|
2e9a6c2511 | ||
|
|
4ba786b5c8 | ||
|
|
a0afc82c5d | ||
|
|
a924d7cad9 | ||
|
|
17aec04fc9 | ||
|
|
81a6c2153a | ||
|
|
9851c3dc18 | ||
|
|
146838a57f | ||
|
|
d44ad5f5dd | ||
|
|
df99a9fdf3 | ||
|
|
bc2cfb408c | ||
|
|
e5a05c8ed2 | ||
|
|
49992b72bd | ||
|
|
af4c005341 | ||
|
|
c0bd90ae94 | ||
|
|
66baa754ce | ||
|
|
36687826e7 | ||
|
|
0bdf5e220d | ||
|
|
2d1a3196e4 | ||
|
|
ab483b0118 | ||
|
|
ab8e92a0e4 | ||
|
|
ba81f8c9f3 | ||
|
|
e9af0b7c08 | ||
|
|
5ec6e3b140 | ||
|
|
a44e791eb4 | ||
|
|
2e3c4c56ae | ||
|
|
aae3eb78da | ||
|
|
70fb29ae9c | ||
|
|
d031d366d3 | ||
|
|
370db5fc0f | ||
|
|
62a46c76e7 | ||
|
|
a7a3dfae3c | ||
|
|
803fd9390b | ||
|
|
ab499f6962 | ||
|
|
31cf13ca76 | ||
|
|
1ecacd4fbb | ||
|
|
da7fdd1c9f | ||
|
|
de8be5e005 | ||
|
|
491c4c608f | ||
|
|
446be37bba | ||
|
|
6a44c38af4 | ||
|
|
b249bef9ea | ||
|
|
5b653f4531 | ||
|
|
ad5d7e6d07 | ||
|
|
8bd6a91ad6 | ||
|
|
a1c783860d | ||
|
|
2a475b198f | ||
|
|
0c10579e42 | ||
|
|
dce1019c69 | ||
|
|
2fe2e34465 | ||
|
|
cd9b4fa801 | ||
|
|
fef8437495 | ||
|
|
52ac9a0281 | ||
|
|
b7c6d10185 | ||
|
|
27bfb7d79a | ||
|
|
db72c69550 | ||
|
|
6c3501e860 | ||
|
|
d2a7dad4e9 | ||
|
|
76dd7bf53c | ||
|
|
ddbb631ef3 | ||
|
|
3ba77ca650 | ||
|
|
26be834155 | ||
|
|
8b8b65181f | ||
|
|
9dfea59ef3 | ||
|
|
602bc6f0c3 | ||
|
|
f6aeb8ef54 | ||
|
|
bfc6dc7953 | ||
|
|
7271178342 | ||
|
|
8d8aba8d6e | ||
|
|
9512231652 | ||
|
|
4f98c96bb1 | ||
|
|
c35559c8ef | ||
|
|
0b41b2dacf | ||
|
|
ca9f809307 | ||
|
|
4cb2f1054f | ||
|
|
ab75e8e27c | ||
|
|
d425a9bbad | ||
|
|
356964ba8f | ||
|
|
52f2ef54d8 | ||
|
|
c0904727d7 | ||
|
|
de73fb8948 | ||
|
|
049d59171a | ||
|
|
dbb1dbbdbc | ||
|
|
6b8986585b | ||
|
|
2980c1e3aa | ||
|
|
d97e787892 | ||
|
|
266d624c9b | ||
|
|
c902227fa3 | ||
|
|
d8dd63c361 | ||
|
|
f718b4ef84 | ||
|
|
c02ca9025f | ||
|
|
aff4f35256 | ||
|
|
9db3430201 | ||
|
|
164a086d80 | ||
|
|
b55bf4af11 | ||
|
|
be09052d36 | ||
|
|
d60054685d | ||
|
|
03101f5018 | ||
|
|
a5f7de92e1 | ||
|
|
9c8e7bc6b0 | ||
|
|
d2babd371f | ||
|
|
3dccd1bc37 | ||
|
|
9fda110d0e | ||
|
|
c739219392 | ||
|
|
b99ed5d66d | ||
|
|
77737b6598 | ||
|
|
fc17959bcd | ||
|
|
c5a076459f | ||
|
|
fedb6e96f7 | ||
|
|
caf19c9691 | ||
|
|
50a31e871a | ||
|
|
1dcd225a06 | ||
|
|
757dd4d328 | ||
|
|
105fe3f8ef | ||
|
|
7276edc3d5 | ||
|
|
b5977004dc | ||
|
|
456e9f796f | ||
|
|
2e61f53880 | ||
|
|
35a929913d | ||
|
|
3869d0fb6a | ||
|
|
4802858018 | ||
|
|
ed46d894e4 | ||
|
|
dd4b3f7d2e | ||
|
|
30737e745f | ||
|
|
f328373fee | ||
|
|
ceb2281361 | ||
|
|
7dc99f3c48 | ||
|
|
217ab07d6d | ||
|
|
8eac87b918 | ||
|
|
d2ea6db300 | ||
|
|
615fbd9e93 | ||
|
|
e8a6c80a35 | ||
|
|
1f310f1e71 | ||
|
|
242b86e228 | ||
|
|
af3e9469ed | ||
|
|
93628d4a32 | ||
|
|
c11af7ccb5 | ||
|
|
7f8ed1fd5a | ||
|
|
63e726ce64 | ||
|
|
0957e32596 | ||
|
|
acf5bdc8aa | ||
|
|
33e5bc458f | ||
|
|
6fd1bd69bf | ||
|
|
f7a1b46e98 | ||
|
|
a33e8e98e8 | ||
|
|
24e6a7d358 | ||
|
|
6c5329082e | ||
|
|
cc737f6d0e | ||
|
|
f7843c6ce6 | ||
|
|
a973feb831 | ||
|
|
19d46c0b91 | ||
|
|
7dd4537001 | ||
|
|
d756ba8210 | ||
|
|
2c4cc1025f | ||
|
|
b16097bb84 | ||
|
|
118c38ae50 | ||
|
|
6c9cbb9451 | ||
|
|
74dab944f2 | ||
|
|
ec363e6202 | ||
|
|
1570a080dd | ||
|
|
fd581a3075 | ||
|
|
76f49d0f0a | ||
|
|
2e741528e1 | ||
|
|
46e2eba677 | ||
|
|
4543b6a7fe | ||
|
|
f81a8b58c2 | ||
|
|
a4a4e2d79c | ||
|
|
f3463ca043 | ||
|
|
622399e06e | ||
|
|
e6d7126db9 | ||
|
|
00532b8c83 | ||
|
|
9d09ac156d | ||
|
|
e2c5feecdb | ||
|
|
3b2e87a695 | ||
|
|
f7f4d70fd7 | ||
|
|
a690770692 | ||
|
|
c89d81506c | ||
|
|
3d1571e4d0 | ||
|
|
94d3dbe9e3 | ||
|
|
287f06f8e4 | ||
|
|
cbf7b1e8a4 | ||
|
|
7ea9dae6e7 | ||
|
|
32d31a8458 | ||
|
|
2de2863b49 | ||
|
|
c6a10d08a9 | ||
|
|
31744b429c | ||
|
|
fa53c7b3ea | ||
|
|
ad32a39152 | ||
|
|
df53a06075 | ||
|
|
e96b12f2bd | ||
|
|
71c0db4008 | ||
|
|
9385e6bd43 | ||
|
|
9c9bb9b674 | ||
|
|
93ba969498 | ||
|
|
71b598d54d | ||
|
|
5a7d126301 | ||
|
|
dca7d481c0 | ||
|
|
fc8f0653f7 | ||
|
|
51d438627d | ||
|
|
7831e0257a | ||
|
|
8aded580f6 | ||
|
|
b895a2a996 | ||
|
|
47f270d742 | ||
|
|
95ef318497 | ||
|
|
85d5f24916 | ||
|
|
58a679c1a6 | ||
|
|
8c97958256 | ||
|
|
99a5cbbaf6 | ||
|
|
f5de25b9ad | ||
|
|
093af924e2 | ||
|
|
4aa1dcf10b | ||
|
|
89801432f7 | ||
|
|
6fe11d888b | ||
|
|
f903857c7a | ||
|
|
bc59321db9 | ||
|
|
29cd88c510 | ||
|
|
a442d35fe7 | ||
|
|
e4cba1280e | ||
|
|
ab5e5ce70f | ||
|
|
d75ec22e8a | ||
|
|
153372b5be | ||
|
|
0bc3310e88 | ||
|
|
49933d49fb | ||
|
|
a70d45febb | ||
|
|
864a269fd3 | ||
|
|
27ba7ef0e5 | ||
|
|
f6995196e3 | ||
|
|
9ccc04a69c | ||
|
|
69a460eff2 | ||
|
|
1145cf9a38 | ||
|
|
0a78fc9396 | ||
|
|
2e00392408 | ||
|
|
495fd41728 | ||
|
|
26f2735044 | ||
|
|
519c1e35d9 | ||
|
|
5d5c2b8848 | ||
|
|
b4d11b1021 | ||
|
|
cfb49e8781 | ||
|
|
9ac5ddc93a | ||
|
|
4570708060 | ||
|
|
320034a15c | ||
|
|
e9aa8884d0 | ||
|
|
ba2362a7b2 | ||
|
|
6767115730 | ||
|
|
a1658b4b83 | ||
|
|
d8172ae6ac | ||
|
|
ac03457a5f | ||
|
|
33e78c7595 | ||
|
|
75cbafc5a2 | ||
|
|
eff7ffbc44 | ||
|
|
9ab654328b | ||
|
|
ff7b23a049 | ||
|
|
ed9244edee | ||
|
|
e927e6bcc4 | ||
|
|
e121b7fb09 | ||
|
|
5464ea3a08 | ||
|
|
6629834345 | ||
|
|
5798e04b5c | ||
|
|
9e09339396 | ||
|
|
f7c3f693eb | ||
|
|
b80b3e219d | ||
|
|
944e34daeb | ||
|
|
4b002340ef | ||
|
|
eb69d5242b | ||
|
|
fb9b8c1d73 | ||
|
|
4e17b6f061 | ||
|
|
4f73a4a86e | ||
|
|
7cc1a55c2e | ||
|
|
3b02f30fd1 | ||
|
|
aa60b2e32e | ||
|
|
c5880b816e | ||
|
|
a1e702ccdb | ||
|
|
add06e01e4 | ||
|
|
6d48a6d74e | ||
|
|
b6c6a0a689 | ||
|
|
4e0a36b5c2 | ||
|
|
23ce0f728f | ||
|
|
eb618a8cfd | ||
|
|
1b4af81503 | ||
|
|
4c98c41501 | ||
|
|
7cc0b31759 | ||
|
|
beeda52e13 | ||
|
|
4f2faf55b8 | ||
|
|
72368a998d | ||
|
|
9e61bf2cfe | ||
|
|
29ea004d8d | ||
|
|
dd28455745 | ||
|
|
44da3896a3 | ||
|
|
ca5cd0fe80 | ||
|
|
b0a4060d60 | ||
|
|
ac441eca96 | ||
|
|
fba6ed1049 | ||
|
|
ed96d05925 | ||
|
|
9e7010bca4 | ||
|
|
4988731cac | ||
|
|
6ece6b03b3 | ||
|
|
bee1b6b123 | ||
|
|
699748bc0a | ||
|
|
d3c1ad489a | ||
|
|
c9394e39e6 | ||
|
|
b4abe640b1 | ||
|
|
65b8a77807 | ||
|
|
d8e0b6a5f4 | ||
|
|
43767b8a9e | ||
|
|
dc72f56938 | ||
|
|
4dfbbe0567 | ||
|
|
46a710528a | ||
|
|
990dac4b65 | ||
|
|
a0281a728a | ||
|
|
59da98ca08 | ||
|
|
7d1f399569 | ||
|
|
63f8d72040 | ||
|
|
6743a9e7e9 | ||
|
|
50ea62c4e7 | ||
|
|
e92e65dcd5 | ||
|
|
005ae5eec3 | ||
|
|
2c856b6b2e | ||
|
|
ed36b976c5 | ||
|
|
19601cde99 | ||
|
|
a673f122ff | ||
|
|
9c4f79bbb8 | ||
|
|
f346cf5399 | ||
|
|
f5979c7ae8 | ||
|
|
e815dc5991 | ||
|
|
f115fb6b94 | ||
|
|
1f27e1bd34 | ||
|
|
df4a6eb31d | ||
|
|
44955f2ebc | ||
|
|
4e58d4a6ce | ||
|
|
9140d6f8d9 | ||
|
|
f8a2884133 | ||
|
|
a86b101a81 | ||
|
|
1cc668e4a5 | ||
|
|
a627b3fa0c | ||
|
|
5e0e3403fd | ||
|
|
028aed76c7 | ||
|
|
8d2120273d | ||
|
|
502bbbc55a | ||
|
|
77dd17c564 | ||
|
|
f1ab5b6aea | ||
|
|
66300a9ae5 | ||
|
|
d5416e3354 | ||
|
|
2f0f4615f1 | ||
|
|
91a4f60847 | ||
|
|
2ae9278a91 | ||
|
|
512f9c60a7 | ||
|
|
e94cf7cbaf | ||
|
|
ad0ba839ed | ||
|
|
7c0ff126a7 | ||
|
|
b378a951fe | ||
|
|
1a5f221d5c | ||
|
|
c37f8b72a1 | ||
|
|
9d0db3488f | ||
|
|
fb36915081 | ||
|
|
e8861d9741 | ||
|
|
b475f6c302 | ||
|
|
a19e5f36dd | ||
|
|
0b0247cb2a | ||
|
|
1f82b1d445 | ||
|
|
a967bd38d4 | ||
|
|
939f04a090 | ||
|
|
4a812cc41e | ||
|
|
a49072ce14 | ||
|
|
8cb610293b | ||
|
|
bd0d310e13 | ||
|
|
2c7ebd6246 | ||
|
|
c37c163f96 | ||
|
|
959dd455fd | ||
|
|
84fa876af8 | ||
|
|
e060535446 | ||
|
|
c438409647 | ||
|
|
f546aaed89 | ||
|
|
66e89939ce | ||
|
|
8a1b6e0a53 | ||
|
|
810c2c8748 | ||
|
|
308d5413a9 | ||
|
|
f3689a4820 | ||
|
|
ac530bc48b | ||
|
|
de97e4f71a | ||
|
|
bec896c460 | ||
|
|
ea88b695bc | ||
|
|
8adef3be45 | ||
|
|
f0cd1106a0 | ||
|
|
1ca93cf38a | ||
|
|
b867b16181 | ||
|
|
2a301c137c | ||
|
|
8a38c2b2f5 | ||
|
|
10c9388a37 | ||
|
|
3d84fe13dd | ||
|
|
9c34128dfb | ||
|
|
88b7b2db63 | ||
|
|
ae37418104 | ||
|
|
35bd680ff1 | ||
|
|
d1da488ea1 | ||
|
|
81413b79f7 | ||
|
|
cdefba9942 | ||
|
|
ac180a15e4 | ||
|
|
ba695d3da3 | ||
|
|
8dfbdba67b | ||
|
|
b3c95cce99 | ||
|
|
4897840e3d | ||
|
|
8aff480618 | ||
|
|
d67194c999 | ||
|
|
10f7ad442e | ||
|
|
93147fae3e | ||
|
|
a214848f6c | ||
|
|
b363b00c04 | ||
|
|
43ef983337 | ||
|
|
1519be62f9 | ||
|
|
a5a46d48dd | ||
|
|
59c4341171 | ||
|
|
85273e5be4 | ||
|
|
fb1b0fe2ec | ||
|
|
d93baf8831 | ||
|
|
70a40120e4 | ||
|
|
a8743308e9 | ||
|
|
4a32fcae69 | ||
|
|
34763b5dee | ||
|
|
94235fa528 | ||
|
|
47bb349d20 | ||
|
|
4380792b1d | ||
|
|
2625c8f62d | ||
|
|
2f9a6ab4ac | ||
|
|
b565c28f08 | ||
|
|
c9ca5980cc | ||
|
|
d3469fb14d | ||
|
|
1880467095 | ||
|
|
26d8efb838 | ||
|
|
755a3e0886 | ||
|
|
53b95df642 | ||
|
|
f8765c404e | ||
|
|
8871c30735 | ||
|
|
2027433d00 | ||
|
|
99a30adb1d | ||
|
|
23d37b9a15 | ||
|
|
381f87b7ce | ||
|
|
b20147b3ea | ||
|
|
150546d9d0 | ||
|
|
119184aa3d | ||
|
|
1b6d394e67 | ||
|
|
57bb000282 | ||
|
|
b2ef69d2f1 | ||
|
|
efcdde7766 | ||
|
|
e0612ebd81 | ||
|
|
2b0ca40995 | ||
|
|
39dd3f8919 | ||
|
|
4f89527cff | ||
|
|
264e635334 | ||
|
|
87846eca5f | ||
|
|
f943adea7b | ||
|
|
ee3d73505a | ||
|
|
a47b16c286 | ||
|
|
e4f664e3d6 | ||
|
|
57ff06b161 | ||
|
|
f352aa0877 | ||
|
|
37f930f3a9 | ||
|
|
f647105d0a | ||
|
|
f7fce74ee0 | ||
|
|
56ee33becd | ||
|
|
08f03e71bc | ||
|
|
4209af9cdd | ||
|
|
80cd92c23d | ||
|
|
0f586b4853 | ||
|
|
6efe2d5494 | ||
|
|
a9a6476730 | ||
|
|
fda9fd0bef | ||
|
|
d2a028078d | ||
|
|
50a6397256 | ||
|
|
83ce3c3ba0 | ||
|
|
4bfdd4e00c | ||
|
|
f202bbcaaa | ||
|
|
1e2a31366f | ||
|
|
12bf1cfe14 | ||
|
|
646bcdefd9 | ||
|
|
a1329fa93e | ||
|
|
1b69080d7b | ||
|
|
59edbdcb14 | ||
|
|
0192d9b597 | ||
|
|
79815e4a71 | ||
|
|
e891ff1ec0 | ||
|
|
066126137d | ||
|
|
60346ff4a4 | ||
|
|
218a4c0bcc | ||
|
|
2d5a9a5b95 | ||
|
|
64fcec9ded | ||
|
|
a63a72bd94 | ||
|
|
11edeb0c71 | ||
|
|
34fc1b17da | ||
|
|
ca5e59d6f6 | ||
|
|
503a6c0807 | ||
|
|
bff333435c | ||
|
|
fdf70b86e4 | ||
|
|
8327f78573 | ||
|
|
0336a2344e | ||
|
|
5f0830c6b9 | ||
|
|
ad630dd168 | ||
|
|
3854b84513 | ||
|
|
6f4be78ccf | ||
|
|
3b2d795041 | ||
|
|
2b3b60ee6a | ||
|
|
8d93bc0533 | ||
|
|
1683868bdd | ||
|
|
a76b127a15 | ||
|
|
23e7cebd1e | ||
|
|
efdcefdcf9 | ||
|
|
f171837b58 | ||
|
|
b1c83fd5dd | ||
|
|
0953c93f37 | ||
|
|
ae0fd388eb | ||
|
|
2e6f2c5bce | ||
|
|
0658600432 | ||
|
|
5d24074587 | ||
|
|
0c7abe9149 | ||
|
|
a41466c9a3 | ||
|
|
35db0a5695 | ||
|
|
30e0704787 | ||
|
|
58675a6fd6 | ||
|
|
cbd43e3510 | ||
|
|
e309e67ce4 | ||
|
|
6dca5db3c1 | ||
|
|
799ea5bb77 | ||
|
|
a14d80857e | ||
|
|
d14f0d6e78 | ||
|
|
d11b53a7a8 | ||
|
|
43ac9cd9ea | ||
|
|
2ed359eba1 | ||
|
|
eb3ad781d5 | ||
|
|
f97576e892 | ||
|
|
73a3194a63 | ||
|
|
174dc9f076 | ||
|
|
0edbf59856 | ||
|
|
ec12610a09 | ||
|
|
b0305086df | ||
|
|
3545daf8b4 | ||
|
|
be3506d6de | ||
|
|
b2822e4482 | ||
|
|
f577715d96 | ||
|
|
d2f5826644 | ||
|
|
34fc0f419b | ||
|
|
f671f27172 | ||
|
|
71bd7f87b4 | ||
|
|
8d00c3c9e2 | ||
|
|
611bf31fcc | ||
|
|
baeadf0274 | ||
|
|
f707ba9f80 | ||
|
|
d562b24ebd | ||
|
|
b08a6acd25 | ||
|
|
5a63403a09 | ||
|
|
34975f1b00 | ||
|
|
8d881d1373 | ||
|
|
72f127263d | ||
|
|
8bbba244fd | ||
|
|
4b1252dbc9 | ||
|
|
c0415416e2 | ||
|
|
937f1b1cf3 | ||
|
|
7fe0b98929 | ||
|
|
92a02354af | ||
|
|
15e69e5543 | ||
|
|
18de94c76e | ||
|
|
1789420ffd | ||
|
|
e4ad7b61e5 | ||
|
|
26619dc6ca | ||
|
|
b6878e0a14 | ||
|
|
73b8b5eff4 | ||
|
|
e227a84830 | ||
|
|
ca7ed1c6d4 | ||
|
|
585dd6712c | ||
|
|
d593b62b99 | ||
|
|
69c75a3515 | ||
|
|
ec05e74944 | ||
|
|
ba65a3afbc | ||
|
|
7cf7714f6d | ||
|
|
5c2e210397 | ||
|
|
95d1433933 | ||
|
|
a7af86ee2b | ||
|
|
3bbaa1eb09 | ||
|
|
f3d3331b64 | ||
|
|
3015f56b5d | ||
|
|
50d2dd253b | ||
|
|
aa4f403817 | ||
|
|
2aa46926e9 | ||
|
|
a7af7562b9 | ||
|
|
9d861ee3a6 | ||
|
|
693785e2ce | ||
|
|
21ef847c81 | ||
|
|
78e2fcd538 | ||
|
|
4260119ad8 | ||
|
|
f816ce702e | ||
|
|
3050fb1334 | ||
|
|
eea99a5975 | ||
|
|
e055e54561 | ||
|
|
4c2d0c78dc | ||
|
|
7ec708a6ac | ||
|
|
55003380f1 | ||
|
|
69de24082d | ||
|
|
7225370cd6 | ||
|
|
ba4e6d41ab | ||
|
|
aaf7456978 | ||
|
|
bd50e9ecda | ||
|
|
b491e97cba | ||
|
|
1707a737e5 | ||
|
|
e11165698f | ||
|
|
368cad7b9e | ||
|
|
fe9c802e3d | ||
|
|
8fa4d325d9 | ||
|
|
7544215011 | ||
|
|
dea831f671 | ||
|
|
217cbe7681 | ||
|
|
a5a923c881 | ||
|
|
fed83b886b | ||
|
|
d93dd5e134 | ||
|
|
c3535b6ba2 | ||
|
|
ec687219dd | ||
|
|
77a89b484f | ||
|
|
730e25cb38 | ||
|
|
3cb03727d4 | ||
|
|
94324a053b | ||
|
|
bed5c7110a | ||
|
|
a41ea125f0 | ||
|
|
a27a9e6e03 | ||
|
|
0d2157f0f7 | ||
|
|
1741022ffa | ||
|
|
d0849a628a | ||
|
|
4dd41fc97b | ||
|
|
1aa53e263f | ||
|
|
9f06605498 | ||
|
|
ff54168607 | ||
|
|
d741f56c14 | ||
|
|
dccd574fde | ||
|
|
0f9320ac02 | ||
|
|
a53b5fc09a | ||
|
|
e7859a06b4 | ||
|
|
5c8b94ff49 | ||
|
|
3f96b6c51a | ||
|
|
c48be7fa0e | ||
|
|
3af0728e87 | ||
|
|
90b994a9e9 | ||
|
|
017ab87dd2 | ||
|
|
dfc787dbe2 | ||
|
|
331ed79ddf | ||
|
|
413dc706fe | ||
|
|
908aeb406c | ||
|
|
4352edce20 | ||
|
|
4e1d63e4d8 | ||
|
|
45ed4bef0f | ||
|
|
c9aab4d7ed | ||
|
|
d5cbe844e0 | ||
|
|
dd9b5a2f9e | ||
|
|
6653b060af | ||
|
|
bff08b24ba | ||
|
|
f509fd52f4 | ||
|
|
abaa5bf51e | ||
|
|
b816a5c7a5 | ||
|
|
231e26c475 | ||
|
|
6839320524 | ||
|
|
62dda072bf | ||
|
|
59879eb998 | ||
|
|
a5519c382a | ||
|
|
6b2e326f0d | ||
|
|
5ff4021bf5 | ||
|
|
b59fa7f7cc | ||
|
|
8fd8b18962 | ||
|
|
dc9a85b89c | ||
|
|
f5ef5df941 | ||
|
|
4d3741ed45 | ||
|
|
a061e355ec | ||
|
|
c8a1920582 | ||
|
|
d3b763fe7d | ||
|
|
cc45fb9722 | ||
|
|
92ac5fb8a6 | ||
|
|
5273f7e0d7 | ||
|
|
e4bf0757ed | ||
|
|
d50781013c | ||
|
|
ee93844578 | ||
|
|
2cdf2cda52 | ||
|
|
97de262281 | ||
|
|
0e7e690830 | ||
|
|
5149241a3a | ||
|
|
0453493b57 | ||
|
|
339b6b00c5 | ||
|
|
835144aa57 | ||
|
|
eaf552095e | ||
|
|
46877987d6 | ||
|
|
e5d6d5d6fa | ||
|
|
43a86888e7 | ||
|
|
eed78ad727 | ||
|
|
16d0574f38 | ||
|
|
2b8e3caaf1 | ||
|
|
bc043c9425 | ||
|
|
0f862440c9 | ||
|
|
bc6455743f | ||
|
|
41f1b68d9a | ||
|
|
afcff9afa7 | ||
|
|
c28565288e | ||
|
|
0c418ab25d | ||
|
|
e44b276b3c | ||
|
|
3137e4193d | ||
|
|
eeed4889a6 | ||
|
|
b59217cbad | ||
|
|
294f5f4d47 | ||
|
|
cad1982c40 | ||
|
|
f5dd8a11d9 | ||
|
|
fe3ce561e2 | ||
|
|
3201869767 | ||
|
|
84b26f9eba | ||
|
|
599035fd78 | ||
|
|
7beed4b86d | ||
|
|
e134a1e88a | ||
|
|
1f50ca58b3 | ||
|
|
ddb88f3e71 | ||
|
|
080aef6b8e | ||
|
|
216ac262f5 | ||
|
|
a6d51b66da | ||
|
|
97af26f6ec | ||
|
|
c02e678ebf | ||
|
|
8fc3d3e130 | ||
|
|
ff84723996 | ||
|
|
fe7fdfb6a2 | ||
|
|
f8e2636b8f | ||
|
|
5f62f097d3 | ||
|
|
90f0493ac7 | ||
|
|
3d03a22e88 | ||
|
|
c2a345472b | ||
|
|
a36a93781d | ||
|
|
15341bbc08 | ||
|
|
dea270dfee | ||
|
|
650ad33718 | ||
|
|
b0377155f1 | ||
|
|
f04243ef9d | ||
|
|
7636c09161 | ||
|
|
e4903a297f | ||
|
|
9fa0500293 | ||
|
|
392234751c | ||
|
|
d1b622a377 | ||
|
|
93046a114a | ||
|
|
487381fd63 | ||
|
|
f79a107dec | ||
|
|
7a879c07c3 | ||
|
|
0baadcb922 | ||
|
|
b835c903b6 | ||
|
|
7da4861c47 | ||
|
|
d25dcddbbd | ||
|
|
0e9a76c34a | ||
|
|
c7da2e2926 | ||
|
|
cbce9e99c9 | ||
|
|
eb389208c1 | ||
|
|
1622e8a085 | ||
|
|
33d1b487d8 | ||
|
|
be57cc3f06 | ||
|
|
b1460ace96 | ||
|
|
241828c4ef | ||
|
|
a5c68715c9 | ||
|
|
00c715c720 | ||
|
|
a7921f4cf7 | ||
|
|
d74d7be36a | ||
|
|
004f0fbbb8 | ||
|
|
ea5788ed65 | ||
|
|
7ff8d77aa8 | ||
|
|
bd497506e2 | ||
|
|
8d3afd3b47 | ||
|
|
6fcc00fdb0 | ||
|
|
621cb77a8d | ||
|
|
c366fec82c | ||
|
|
7764915441 | ||
|
|
a3d5252cf5 | ||
|
|
6c387a749c | ||
|
|
660d3a3dde | ||
|
|
a7bc07e035 | ||
|
|
c9e70584d0 | ||
|
|
3b03439b36 | ||
|
|
5c1096f1b5 | ||
|
|
cc5292f9c0 | ||
|
|
d6bd977046 | ||
|
|
e4b183a384 | ||
|
|
cdc50c8ae1 | ||
|
|
0798875b1d | ||
|
|
27e358f9f2 | ||
|
|
629d65bb9a | ||
|
|
b2692af7d1 | ||
|
|
ae8d9281e6 | ||
|
|
dd730bb6c9 | ||
|
|
3fa9b9dcbf | ||
|
|
b8cc1866ec | ||
|
|
586fcf8b6c | ||
|
|
44f25464b9 | ||
|
|
597a74081b | ||
|
|
8fa1ccd5ef | ||
|
|
bcdf335109 | ||
|
|
594e6da0bb | ||
|
|
18ac8827e6 | ||
|
|
f6b8890be8 | ||
|
|
36042958bc | ||
|
|
df1827fc7d | ||
|
|
eaefd9bd8b | ||
|
|
5d2c3ec185 | ||
|
|
130227ddc2 | ||
|
|
4fc2b8ee96 | ||
|
|
0aafaed921 | ||
|
|
39df09f5e7 | ||
|
|
b56a384d76 | ||
|
|
bd7abb5082 | ||
|
|
0950beb85b | ||
|
|
c8850880aa | ||
|
|
4f2cca18bb | ||
|
|
6a42dc0b77 | ||
|
|
6ee1d88d23 | ||
|
|
4de522a6c6 | ||
|
|
9d129da158 | ||
|
|
8f8ac2966f | ||
|
|
0727a34d1b | ||
|
|
f221747a5f | ||
|
|
e089530797 | ||
|
|
480b709270 | ||
|
|
0ddf2008b6 | ||
|
|
0dbb02918e | ||
|
|
e6135332d3 | ||
|
|
1ed6742a81 | ||
|
|
f1e42b7667 | ||
|
|
bf56620c57 | ||
|
|
f72e8713ad | ||
|
|
9bd863515b | ||
|
|
1dc8d8f280 | ||
|
|
26822c1204 | ||
|
|
c85249eb83 | ||
|
|
964f571ce4 | ||
|
|
6b598a255e | ||
|
|
bd4c37762a | ||
|
|
ef3582fc69 | ||
|
|
a4c48a52b4 | ||
|
|
236d0533ce | ||
|
|
c45122d758 | ||
|
|
ba79da1565 | ||
|
|
0b251ea856 | ||
|
|
92e2977b10 | ||
|
|
9390c1f097 | ||
|
|
85f075d3e3 | ||
|
|
7b5fa97666 | ||
|
|
cc4d054cc8 | ||
|
|
5aeae9b27d | ||
|
|
68e84b99dd | ||
|
|
0d925e91bc | ||
|
|
89d137cfbd | ||
|
|
491f770d7e | ||
|
|
4580866d75 | ||
|
|
40595a2d48 | ||
|
|
81c6593b9f | ||
|
|
6c6f4dcea4 | ||
|
|
6494b0dbe9 | ||
|
|
6894d6c157 | ||
|
|
b32055822c | ||
|
|
d177313a03 | ||
|
|
6197dbbe13 | ||
|
|
eed38d1827 | ||
|
|
2c4c775e66 | ||
|
|
72b9d0c7c8 | ||
|
|
2945078aee | ||
|
|
515fff82ac | ||
|
|
e62b66e15a | ||
|
|
0f1acb2660 | ||
|
|
2cf2d0dc5f | ||
|
|
9f3170a315 | ||
|
|
5f130c6834 | ||
|
|
b6accc55f4 | ||
|
|
7200e9311e | ||
|
|
1921785e54 | ||
|
|
8bcc315934 | ||
|
|
25defbdb65 | ||
|
|
86eb57f87f | ||
|
|
f9e2803306 | ||
|
|
33cbb29965 | ||
|
|
2ec086bfb7 | ||
|
|
b7c354db80 | ||
|
|
51b54ed782 | ||
|
|
ce0440c8b0 | ||
|
|
e45072720c | ||
|
|
d359f5a502 | ||
|
|
3b5a5b4277 | ||
|
|
decc1655b7 | ||
|
|
24cce2665f | ||
|
|
c2ff5b4d72 | ||
|
|
eda3b750e3 | ||
|
|
82994e769d | ||
|
|
acb2c5d4a5 | ||
|
|
ecd5adc08a | ||
|
|
7fe0615c48 | ||
|
|
e591383f42 | ||
|
|
f5d2d7db6c | ||
|
|
c0fd97c929 | ||
|
|
3f33367556 | ||
|
|
686de88c37 | ||
|
|
db0b513d22 | ||
|
|
0fb99ade66 | ||
|
|
35bc77d3fb | ||
|
|
8c27f02b1e | ||
|
|
0a15440b39 | ||
|
|
42c68aabc3 | ||
|
|
05a518f4ea | ||
|
|
b43639a361 | ||
|
|
2b4f7f0b10 | ||
|
|
9fa5e419ce | ||
|
|
c5aabdda1c | ||
|
|
a83a88e3fc | ||
|
|
3705d723ec | ||
|
|
a248953043 | ||
|
|
acde2600ff | ||
|
|
e042b45365 | ||
|
|
4929a0c8b3 | ||
|
|
156e8445e0 | ||
|
|
9faeb6a6b2 | ||
|
|
7da50cdb4b | ||
|
|
156ef17696 | ||
|
|
7ed69370a4 | ||
|
|
ed95ff51b5 | ||
|
|
b041e5a4ef | ||
|
|
0c1cacdb35 | ||
|
|
fe122515ad | ||
|
|
18394a2577 | ||
|
|
435a0d04df | ||
|
|
e65c0fc49e | ||
|
|
0452bdc4d4 | ||
|
|
f86b6e99ed | ||
|
|
1c49b4147d | ||
|
|
a257d33196 | ||
|
|
1cb1e5c013 | ||
|
|
4eae00b707 | ||
|
|
59de429914 | ||
|
|
80374c174f | ||
|
|
75e8a3b157 | ||
|
|
7663f74b33 | ||
|
|
e7afecfdcc | ||
|
|
dd4755752f | ||
|
|
d1f69783af | ||
|
|
d656750f57 | ||
|
|
18c63fc062 | ||
|
|
a5d67296bd | ||
|
|
39d37456f1 | ||
|
|
61303b7d6a | ||
|
|
a9fa8a5dd9 | ||
|
|
79d6369d99 | ||
|
|
4444663115 | ||
|
|
b395d51095 | ||
|
|
06236f7b99 | ||
|
|
827793150c | ||
|
|
54b7a02a68 | ||
|
|
d6060678db | ||
|
|
8f76a09ba4 | ||
|
|
a2a4d7709b | ||
|
|
f2c2b9c678 | ||
|
|
7fffbb325e | ||
|
|
851bebf4c3 | ||
|
|
f76251bd2e | ||
|
|
6a81388ee0 | ||
|
|
e0537d09e1 | ||
|
|
701b3b6f05 | ||
|
|
9ec31102b0 | ||
|
|
cf3006b132 | ||
|
|
075364ded8 | ||
|
|
4d82e236d7 | ||
|
|
afe0488a84 | ||
|
|
ce667146c1 | ||
|
|
beea8150d1 | ||
|
|
ae35c122c6 | ||
|
|
40d601aa6b | ||
|
|
aa768e399e | ||
|
|
9177e9711c | ||
|
|
b36ce523ba | ||
|
|
9bf52e814e | ||
|
|
cf6c565c22 | ||
|
|
7fb751577c | ||
|
|
eeb724d260 | ||
|
|
cb840307f0 | ||
|
|
35a515563c | ||
|
|
0aaefc7213 | ||
|
|
b1ecb89539 | ||
|
|
9d26891c8f | ||
|
|
53a09ee822 | ||
|
|
56d2f6f50e | ||
|
|
56599922be | ||
|
|
852877e962 | ||
|
|
019e7d8b98 | ||
|
|
cffa9d088c | ||
|
|
f7d51733c5 | ||
|
|
7d92966cee | ||
|
|
584484433c | ||
|
|
4aa04fd8f4 | ||
|
|
3f689eaf92 | ||
|
|
d5e150c337 | ||
|
|
a5ea592f83 | ||
|
|
71efa225cf | ||
|
|
09de635e9c | ||
|
|
8a229cf53a | ||
|
|
d293d9cfc3 | ||
|
|
be26a1500c | ||
|
|
6880910bb5 | ||
|
|
126253aa3f | ||
|
|
4de0d1344b | ||
|
|
c8a14310e0 | ||
|
|
c317187062 | ||
|
|
4f8c1d1adb | ||
|
|
9a9c3bf4e5 | ||
|
|
ce8de06704 | ||
|
|
317758284f | ||
|
|
97cfc95b1f | ||
|
|
f1daacca33 | ||
|
|
3fcffe7646 | ||
|
|
2e63d54c6f | ||
|
|
6341fd96f8 | ||
|
|
55d90453a9 | ||
|
|
3d89fb5632 | ||
|
|
111aed9dc9 | ||
|
|
fe8c1688bc | ||
|
|
58a9de17ea | ||
|
|
1c32949817 | ||
|
|
1dc0266bad | ||
|
|
6451d1e48d | ||
|
|
3e57fefc5a | ||
|
|
2c14cb4d8c | ||
|
|
551a4b5307 | ||
|
|
c9b1085b77 | ||
|
|
7e80b2a621 | ||
|
|
ed7a666d11 | ||
|
|
92189da6bb | ||
|
|
9208895597 | ||
|
|
d6a29dfb52 | ||
|
|
49f376e240 | ||
|
|
9d05a8b36d | ||
|
|
9ddd8f2bbf | ||
|
|
2dd1c2f85f | ||
|
|
e02b8c16e3 | ||
|
|
20c2d14306 | ||
|
|
8f18f7ef18 | ||
|
|
5e92f1ce82 | ||
|
|
243f1ad22a | ||
|
|
22c8da4a1e | ||
|
|
8695ac82a1 | ||
|
|
523bd3acdc | ||
|
|
b181597b2e | ||
|
|
dd6212be1b | ||
|
|
077ded71ce | ||
|
|
67d9c5bd26 | ||
|
|
a188f29fcb | ||
|
|
d38110a383 | ||
|
|
2c11e65c5f | ||
|
|
be892fbee1 | ||
|
|
a12b68ade8 | ||
|
|
52898a1dc1 | ||
|
|
cea7f0ef7b | ||
|
|
2bc354bc51 | ||
|
|
b03e2472b2 | ||
|
|
b80eb71b4b | ||
|
|
9fefcdf250 | ||
|
|
179919857c | ||
|
|
06460297b5 | ||
|
|
10b9a80362 | ||
|
|
94dff82c91 | ||
|
|
d812be028a | ||
|
|
2475443f9b | ||
|
|
cc9fd5a8fd | ||
|
|
7fc2f75e73 | ||
|
|
85e8e5748c | ||
|
|
a18519079f | ||
|
|
ba88665626 | ||
|
|
76cf720dd2 | ||
|
|
0052f2510c | ||
|
|
28cad60244 | ||
|
|
6b052578f4 | ||
|
|
5777b102b6 | ||
|
|
acf6acf461 | ||
|
|
1bdbd6435b | ||
|
|
ec64f40777 | ||
|
|
9e0fa457bf | ||
|
|
fea1f6f621 | ||
|
|
c16d178c78 | ||
|
|
12909eb3b1 | ||
|
|
f0ee9c892a | ||
|
|
d3a8cdc100 | ||
|
|
36ba6fc7b4 | ||
|
|
d002572acc | ||
|
|
490985c2d9 | ||
|
|
6deb6cbc2e | ||
|
|
f02b9cb53d | ||
|
|
846e392ed3 | ||
|
|
9df0faaad6 | ||
|
|
8208a491d0 | ||
|
|
7da0c2d928 | ||
|
|
ff4c1fdad6 | ||
|
|
f3b8395549 | ||
|
|
c225823a43 | ||
|
|
236193c255 | ||
|
|
56f81d711e | ||
|
|
0b9d2f9adf | ||
|
|
fba722659c | ||
|
|
bd92cffca5 | ||
|
|
3e0036d049 | ||
|
|
0c80c4a737 | ||
|
|
dfda05378f | ||
|
|
cdae8b2a6d | ||
|
|
ca91c53719 | ||
|
|
3639d65dea | ||
|
|
b37a9ca241 | ||
|
|
25e76c578e | ||
|
|
c97c077eb0 | ||
|
|
7c7a414336 | ||
|
|
92bb619520 | ||
|
|
94d3842315 | ||
|
|
82c55cd504 | ||
|
|
bd6d6800b6 | ||
|
|
1c0835f31e | ||
|
|
3f8cca7cf0 | ||
|
|
d6bea0176a | ||
|
|
853d23a359 | ||
|
|
40dd1c914d | ||
|
|
0d372995bd | ||
|
|
aea04bea68 | ||
|
|
39165936da | ||
|
|
1b533f635c | ||
|
|
c7b928db75 | ||
|
|
a0ac0a64b7 | ||
|
|
cfb7d50f47 | ||
|
|
56473866f7 | ||
|
|
180e2100fa | ||
|
|
250503d65f | ||
|
|
0daa8e2aad | ||
|
|
580b8061d7 | ||
|
|
66c53afec1 | ||
|
|
90779b9553 | ||
|
|
b5a957cf78 | ||
|
|
ea48d24910 | ||
|
|
a291fa259c | ||
|
|
ac4d5c12f5 | ||
|
|
2a5da7e255 | ||
|
|
29ad618c07 | ||
|
|
520c779b28 | ||
|
|
2b035a48c8 | ||
|
|
b2bfe871fa | ||
|
|
5c39e3fc0d | ||
|
|
15824b2c08 | ||
|
|
af4b36a99a | ||
|
|
2ca0afdb54 | ||
|
|
dd9aa2a5f7 | ||
|
|
348cb5a802 | ||
|
|
809e6ce121 | ||
|
|
f23967c750 | ||
|
|
74af20cdb4 | ||
|
|
f85134ff5c | ||
|
|
7cd3d83ae0 | ||
|
|
f184cd3e2d | ||
|
|
36db7aaf85 | ||
|
|
1393d4b24c | ||
|
|
9110684ac0 | ||
|
|
2de8349c89 | ||
|
|
350fa38ca2 | ||
|
|
4c191874e4 | ||
|
|
1a914d172a | ||
|
|
c8f3e9747f | ||
|
|
2d2c509790 | ||
|
|
99573f7717 | ||
|
|
ba1b6c2a00 | ||
|
|
61bb759125 | ||
|
|
8a7fbbce4a | ||
|
|
9885329fa2 | ||
|
|
f0f6d041ce | ||
|
|
766d612165 | ||
|
|
04dc12f590 | ||
|
|
071bc1e889 | ||
|
|
948e40df04 | ||
|
|
ea0b1975f3 | ||
|
|
56f92a4fb7 | ||
|
|
4844768359 | ||
|
|
1b26c42200 | ||
|
|
6f49ce7181 | ||
|
|
a74ddceaba | ||
|
|
d53f3ecd47 | ||
|
|
652a95beaf | ||
|
|
d73fbb4e9c | ||
|
|
3ddf6f4109 | ||
|
|
8538622cf6 | ||
|
|
cab6a2af16 | ||
|
|
496bff305f | ||
|
|
bb07ff04cf | ||
|
|
f31cfb7e1a | ||
|
|
5d4b5f3598 | ||
|
|
663f8261ed | ||
|
|
f5bbd9baf6 | ||
|
|
bbf165a383 | ||
|
|
172d160ee5 | ||
|
|
cf4ca7b50d | ||
|
|
449005522f | ||
|
|
637387e3a5 | ||
|
|
7086dd68ec | ||
|
|
46e65b4747 | ||
|
|
661c4db608 | ||
|
|
ba41510b9f | ||
|
|
f3fe886a98 | ||
|
|
d28f7b4946 | ||
|
|
ebddbc3700 | ||
|
|
4231b4ab6c | ||
|
|
400cdf4a67 | ||
|
|
97e44c9050 | ||
|
|
1d454fcdee | ||
|
|
d654af73ed | ||
|
|
f7b2566d8e | ||
|
|
583316ad92 | ||
|
|
261e83b9d2 |
8
.gitignore
vendored
8
.gitignore
vendored
@@ -18,3 +18,11 @@ mkpkg-temp
|
||||
|
||||
# private working directory
|
||||
/.work/
|
||||
|
||||
# symlinks...
|
||||
/sources
|
||||
/.work
|
||||
|
||||
# backup files
|
||||
*.orig
|
||||
|
||||
|
||||
13
CHANGELOG
13
CHANGELOG
@@ -5,12 +5,12 @@ Changelog OpenELEC-1.0 to OpenELEC-2.0
|
||||
Package updates:
|
||||
- update XBMC to XBMC-11.0 (Eden)
|
||||
- update eglibc to eglibc-2.15
|
||||
- update Python to Python-2.7.2
|
||||
- update gcc to gcc-4.7.0
|
||||
- update Python to Python-2.7
|
||||
- update gcc to gcc-4.7
|
||||
- update openssl to openssl-1.0.1
|
||||
- update xorg-server to xorg-server-1.11
|
||||
- update to Kernel 3.2
|
||||
- update to Mesa-8.0.1
|
||||
- update xorg-server to xorg-server-1.12
|
||||
- update linux to Kernel 3.2
|
||||
- update Mesa to Mesa-8.0
|
||||
|
||||
Added functions:
|
||||
- PXE netboot support:
|
||||
@@ -22,10 +22,11 @@ Added functions:
|
||||
- CEC support
|
||||
- libaacs support
|
||||
- automatic framebuffer detection
|
||||
- exFAT filesystem support
|
||||
|
||||
Changed functions
|
||||
- change bootsplash from plymouth-lite to fbsplash
|
||||
- changed ATV build to use Nvidia binary graphic driver (incl HDMI audio)
|
||||
- added support for native XVBA incl. High@L5.1 support, which replaces VAAPI-XVBA support
|
||||
|
||||
Removed functions:
|
||||
- remove netmount.conf (XBMC includes native NFS/AFP/CIFS/SSH support)
|
||||
|
||||
@@ -24,19 +24,31 @@
|
||||
|
||||
# determine architecture's family
|
||||
case $TARGET_CPU in
|
||||
arm1176jzf-s)
|
||||
TARGET_SUBARCH=armv6zk
|
||||
TARGET_ABI=eabi
|
||||
TARGET_EXTRA_FLAGS="-Wno-psabi -Wa,-mno-warn-deprecated"
|
||||
TARGET_FPU_FLAGS="-mfloat-abi=$TARGET_FLOAT -mfpu=$TARGET_FPU"
|
||||
SIMD_SUPPORT="no"
|
||||
;;
|
||||
cortex-a8)
|
||||
TARGET_SUBARCH=armv7-a
|
||||
TARGET_ABI=eabi
|
||||
TARGET_FPU="neon"
|
||||
TARGET_EXTRA_FLAGS="-Wno-psabi -Wa,-mno-warn-deprecated"
|
||||
TARGET_FPU_FLAGS="-mfloat-abi=$TARGET_FLOAT -mfpu=$TARGET_FPU"
|
||||
SIMD_SUPPORT="yes"
|
||||
;;
|
||||
cortex-a9)
|
||||
TARGET_SUBARCH=armv7-a
|
||||
TARGET_ABI=eabi
|
||||
TARGET_FPU="neon"
|
||||
TARGET_EXTRA_FLAGS="-Wno-psabi -Wa,-mno-warn-deprecated"
|
||||
TARGET_FPU_FLAGS="-mfloat-abi=$TARGET_FLOAT -mfpu=$TARGET_FPU"
|
||||
SIMD_SUPPORT="yes"
|
||||
;;
|
||||
esac
|
||||
|
||||
# setup ARCH specific *FLAGS
|
||||
TARGET_CFLAGS="-march=$TARGET_SUBARCH -mtune=$TARGET_CPU -mabi=aapcs-linux"
|
||||
[ -n "$TARGET_FPU" ] && TARGET_CFLAGS="$TARGET_CFLAGS -mfpu=$TARGET_FPU"
|
||||
TARGET_LDFLAGS="-fPIC -march=$TARGET_SUBARCH -mtune=$TARGET_CPU"
|
||||
TARGET_CFLAGS="-march=$TARGET_SUBARCH -mcpu=$TARGET_CPU -mabi=aapcs-linux $TARGET_EXTRA_FLAGS"
|
||||
[ -n "$TARGET_FPU" ] && TARGET_CFLAGS="$TARGET_CFLAGS $TARGET_FPU_FLAGS"
|
||||
TARGET_LDFLAGS="-march=$TARGET_SUBARCH -mtune=$TARGET_CPU"
|
||||
GCC_OPTS="--with-abi=aapcs-linux --with-arch=$TARGET_SUBARCH --with-float=$TARGET_FLOAT --with-fpu=$TARGET_FPU"
|
||||
|
||||
@@ -9,3 +9,6 @@
|
||||
# setup ARCH specific *FLAGS
|
||||
TARGET_CFLAGS="-march=$TARGET_CPU -m32"
|
||||
TARGET_LDFLAGS="-march=$TARGET_CPU -m32"
|
||||
|
||||
# build with SIMD support ( yes / no )
|
||||
SIMD_SUPPORT="yes"
|
||||
|
||||
@@ -9,3 +9,6 @@
|
||||
# setup ARCH specific *FLAGS
|
||||
TARGET_CFLAGS="-march=$TARGET_CPU -m64"
|
||||
TARGET_LDFLAGS="-march=$TARGET_CPU -m64"
|
||||
|
||||
# build with SIMD support ( yes / no )
|
||||
SIMD_SUPPORT="yes"
|
||||
|
||||
@@ -186,6 +186,20 @@ fix_module_depends() {
|
||||
rm new.modinfo*
|
||||
}
|
||||
|
||||
check_path() {
|
||||
dashes="==========================="
|
||||
if [ "${PWD##/usr}" != "${PWD}" ]; then
|
||||
check_pathmessage="$check_pathmessage\n $dashes$dashes$dashes"
|
||||
check_pathmessage="$check_pathmessage\n ERROR: You try to build inside /usr"
|
||||
check_pathmessage="$check_pathmessage\n $dashes$dashes$dashes"
|
||||
check_pathmessage="$check_pathmessage\n This is not supported with our buildsystem."
|
||||
check_pathmessage="$check_pathmessage\n Please use another dir (for example your \$HOME) to build $DISTRONAME"
|
||||
|
||||
echo -e $check_pathmessage
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
check_config() {
|
||||
dashes="==========================="
|
||||
if [ ! -d $PROJECT_DIR/$PROJECT ]; then
|
||||
@@ -228,7 +242,9 @@ show_config() {
|
||||
config_message="$config_message\n $dashes$dashes"
|
||||
|
||||
config_message="$config_message\n - CPU (ARCH):\t\t\t\t $TARGET_CPU ($TARGET_ARCH)"
|
||||
config_message="$config_message\n - FLOAT:\t\t\t\t $TARGET_FLOAT"
|
||||
config_message="$config_message\n - FPU:\t\t\t\t\t $TARGET_FPU"
|
||||
config_message="$config_message\n - SIMD support:\t\t\t $SIMD_SUPPORT"
|
||||
config_message="$config_message\n - Optimizations:\t\t\t $OPTIMIZATIONS"
|
||||
config_message="$config_message\n - LTO (Link Time Optimization) support: $LTO_SUPPORT"
|
||||
config_message="$config_message\n - LLVM support:\t\t\t $LLVM_SUPPORT"
|
||||
@@ -244,6 +260,7 @@ show_config() {
|
||||
config_message="$config_message\n - XORG support:\t\t\t $XORG_SUPPORT"
|
||||
config_message="$config_message\n - XORG Composite support:\t\t $COMPOSITE_SUPPORT"
|
||||
config_message="$config_message\n - XORG Xinerama support:\t\t $XINERAMA_SUPPORT"
|
||||
config_message="$config_message\n - SDL support:\t\t\t\t $SDL_SUPPORT"
|
||||
config_message="$config_message\n - OpenGL (GLX) support (provider):\t $OPENGL_SUPPORT ($OPENGL)"
|
||||
config_message="$config_message\n - OpenGLES support (provider):\t\t $OPENGLES_SUPPORT ($OPENGLES)"
|
||||
config_message="$config_message\n - WindowManager:\t\t\t $WINDOWMANAGER"
|
||||
@@ -255,6 +272,7 @@ show_config() {
|
||||
config_message="$config_message\n $dashes$dashes"
|
||||
|
||||
config_message="$config_message\n - Broadcom CrystalHD Decoder:\t\t $CRYSTALHD"
|
||||
config_message="$config_message\n - OpenMAX Support (provider):\t\t $OPENMAX_SUPPORT ($OPENMAX)"
|
||||
config_message="$config_message\n - VAAPI Support:\t\t\t $VAAPI"
|
||||
config_message="$config_message\n - VDPAU Support:\t\t\t $VDPAU"
|
||||
config_message="$config_message\n - XVBA Support:\t\t\t $XVBA"
|
||||
@@ -326,6 +344,11 @@ show_config() {
|
||||
config_message="$config_message\n\n Misc. Filesystems:"
|
||||
config_message="$config_message\n $dashes$dashes"
|
||||
|
||||
config_message="$config_message\n - Swap Support:\t\t\t $SWAP_SUPPORT"
|
||||
if [ "$SWAP_SUPPORT" = "yes" ]; then
|
||||
config_message="$config_message\n - Swapfile default size:\t\t $SWAPFILESIZE"
|
||||
fi
|
||||
config_message="$config_message\n - exFAT Support (via Fuse):\t\t $EXFAT"
|
||||
config_message="$config_message\n - NTFS Support (via Fuse):\t\t $NTFS3G"
|
||||
config_message="$config_message\n - Install HFS Tools:\t\t\t $HFSTOOLS"
|
||||
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
ALSA_SUPPORT="yes"
|
||||
if [ "$DISPLAYSERVER" = "xorg-server" ]; then
|
||||
SDL_SUPPORT="yes"
|
||||
else
|
||||
SDL_SUPPORT="no"
|
||||
fi
|
||||
|
||||
if [ "$OPENGL" = no ]; then
|
||||
OPENGL_SUPPORT="no"
|
||||
XORG_SUPPORT="no"
|
||||
else
|
||||
OPENGL_SUPPORT="yes"
|
||||
XORG_SUPPORT="yes"
|
||||
fi
|
||||
|
||||
if [ "$OPENGLES" = no ]; then
|
||||
@@ -14,6 +16,22 @@ else
|
||||
OPENGLES_SUPPORT="yes"
|
||||
fi
|
||||
|
||||
if [ "$SDL_SUPPORT" = no ]; then
|
||||
JOYSTICK_SUPPORT="no"
|
||||
fi
|
||||
|
||||
if [ "$OPENMAX" = no ]; then
|
||||
OPENMAX_SUPPORT="no"
|
||||
else
|
||||
OPENMAX_SUPPORT="yes"
|
||||
fi
|
||||
|
||||
if [ "$OPENGL_SUPPORT" = no ]; then
|
||||
XBMC_SCR_RSXS="no"
|
||||
XBMC_VIS_PROJECTM="no"
|
||||
XBMC_VIS_GOOM="no"
|
||||
fi
|
||||
|
||||
get_graphicdrivers() {
|
||||
if [ "$GRAPHIC_DRIVERS" = "all" ]; then
|
||||
GRAPHIC_DRIVERS="i915 i965 r200 r300 r600 fglrx nvidia vmware virtualbox"
|
||||
@@ -26,6 +44,12 @@ get_graphicdrivers() {
|
||||
XINERAMA_SUPPORT="yes"
|
||||
fi
|
||||
|
||||
if [ "$drv" = "fglrx-legacy" ]; then
|
||||
XORG_DRIVERS="$XORG_DRIVERS fglrx-legacy"
|
||||
COMPOSITE_SUPPORT="yes"
|
||||
XINERAMA_SUPPORT="yes"
|
||||
fi
|
||||
|
||||
if [ "$drv" = "i915" ]; then
|
||||
DRI_DRIVERS="$DRI_DRIVERS,i915"
|
||||
# GALLIUM_DRIVERS="$GALLIUM_DRIVERS,i915"
|
||||
|
||||
@@ -18,7 +18,9 @@ fi
|
||||
|
||||
if [ "$OPTIMIZATIONS" = size ];then
|
||||
GCC_OPTIM="$GCC_OPTIM -Os"
|
||||
LD_OPTIM=""
|
||||
GCC_OPTIM="$GCC_OPTIM -fexcess-precision=fast"
|
||||
GCC_OPTIM="$GCC_OPTIM -ffast-math"
|
||||
LD_OPTIM="-Wl,--as-needed"
|
||||
fi
|
||||
|
||||
if [ "$LTO_SUPPORT" = yes ];then
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# set default language for buildsystem
|
||||
export LC_ALL=C
|
||||
|
||||
# determines PROJECT, if not forced by user
|
||||
# default is Generic
|
||||
if [ -z "$PROJECT" ]; then
|
||||
@@ -62,7 +65,7 @@ PROJECT_DIR="$ROOT/projects"
|
||||
# value in gigabytes, megabytes or kilobytes by appending a G, M or K to the
|
||||
# value. The default is gigabytes. The actual value stored is rounded down to
|
||||
# the nearest multiple of 16 kilobytes.
|
||||
CCACHE_CACHE_SIZE="10G"
|
||||
CCACHE_CACHE_SIZE="30G"
|
||||
|
||||
# forcing install of all packages (yes/no)
|
||||
FORCE_INSTALL="no"
|
||||
|
||||
18
config/path
18
config/path
@@ -54,7 +54,14 @@ SED="sed -i"
|
||||
PKG_LONGDESC=""
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
[ -n "$1" ] && PKG_DIR=`find $PACKAGES -type d -name $1 2>/dev/null`
|
||||
if [ -n "$1" ]; then
|
||||
PKG_DIR=`find $PACKAGES -type d -name $1 ! -wholename \*\/source\/\* 2>/dev/null`
|
||||
if [ "${PKG_DIR}" != "$(echo $PKG_DIR | tr -d '\n')" ]; then
|
||||
echo "Error - multiple package folders:"
|
||||
echo "$PKG_DIR"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
[ -r $PKG_DIR/meta ] && . $PKG_DIR/meta
|
||||
[ "$PKG_IS_ADDON" = "yes" ] && PKG_ADDON_ID="`echo $PKG_SECTION | sed 's,/,.,g'`.$PKG_NAME"
|
||||
@@ -106,7 +113,9 @@ HOST_PKG_CONFIG_PATH=""
|
||||
HOST_PKG_CONFIG_LIBDIR="$ROOT/$TOOLCHAIN/lib/pkgconfig:$ROOT/$TOOLCHAIN/share/pkgconfig"
|
||||
HOST_PKG_CONFIG_SYSROOT_DIR=""
|
||||
|
||||
export CCACHE_DIR=$ROOT/$BUILD/.ccache
|
||||
if [ -z "$CCACHE_DIR" ]; then
|
||||
export CCACHE_DIR=$HOME/.ccache-openelec
|
||||
fi
|
||||
export MAKEFLAGS=-j$CONCURRENCY_MAKE_LEVEL
|
||||
export PKG_CONFIG=$ROOT/$TOOLCHAIN/bin/pkg-config
|
||||
|
||||
@@ -114,9 +123,14 @@ if [ -z "$PATH" -o "$PATH" = "${PATH#$ROOT/$TOOLCHAIN/bin:}" ]; then
|
||||
export PATH="$ROOT/$TOOLCHAIN/bin:$PATH"
|
||||
fi
|
||||
|
||||
if [ -z "$LD_LIBRARY_PATH" -o "$LD_LIBRARY_PATH" = "${LD_LIBRARY_PATH#$ROOT/$TOOLCHAIN/lib:}" ]; then
|
||||
export LD_LIBRARY_PATH="$ROOT/$TOOLCHAIN/lib:$LD_LIBRARY_PATH"
|
||||
fi
|
||||
|
||||
VERSION_SUFFIX=$TARGET_ARCH
|
||||
. config/functions
|
||||
|
||||
check_path
|
||||
check_config
|
||||
|
||||
setup_toolchain target
|
||||
|
||||
1536
config/release/3rdparty/syslinux/NEWS
vendored
1536
config/release/3rdparty/syslinux/NEWS
vendored
File diff suppressed because it is too large
Load Diff
34
config/release/3rdparty/syslinux/README
vendored
34
config/release/3rdparty/syslinux/README
vendored
@@ -1,34 +0,0 @@
|
||||
See the files in the doc directory for documentation about SYSLINUX:
|
||||
|
||||
syslinux.txt - Usage instructions; manual.
|
||||
distrib.txt - For creators of Linux distributions.
|
||||
pxelinux.txt - Documentation specific to PXELINUX.
|
||||
isolinux.txt - Documentation specific to ISOLINUX.
|
||||
extlinux.txt - Documentation specific to EXTLINUX.
|
||||
menu.txt - About the menu systems.
|
||||
usbkey.txt - About using SYSLINUX on USB keys.
|
||||
comboot.txt - About the extension API.
|
||||
memdisk.txt - Documentation about MEMDISK.
|
||||
|
||||
Also see the files:
|
||||
|
||||
NEWS - List of changes from previous releases.
|
||||
TODO - About features planned for future releases.
|
||||
COPYING - For the license terms of this software.
|
||||
|
||||
SYSLINUX now builds in a Linux environment, using nasm. You need nasm
|
||||
version 2.03 or later (2.07 or later recommended) to build SYSLINUX
|
||||
from source. See http://www.nasm.us/ for information about nasm.
|
||||
|
||||
There is now a mailing list for SYSLINUX. See the end of syslinux.txt
|
||||
for details.
|
||||
|
||||
SYSLINUX is:
|
||||
|
||||
Copyright 1994-2011 H. Peter Anvin et al - All Rights Reserved
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, Inc., 53 Temple Place Ste 330,
|
||||
Boston MA 02111-1307, USA; either version 2 of the License, or
|
||||
(at your option) any later version; incorporated herein by reference.
|
||||
831
config/release/3rdparty/syslinux/doc/CodingStyle.txt
vendored
831
config/release/3rdparty/syslinux/doc/CodingStyle.txt
vendored
@@ -1,831 +0,0 @@
|
||||
Syslinux uses Linux kernel coding style, except that we are "heretic"
|
||||
in the sense of using 4 spaces instead of 8 for indentation.
|
||||
|
||||
This coding style will be applied after the 3.81 release.
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
Linux kernel coding style
|
||||
|
||||
This is a short document describing the preferred coding style for the
|
||||
linux kernel. Coding style is very personal, and I won't _force_ my
|
||||
views on anybody, but this is what goes for anything that I have to be
|
||||
able to maintain, and I'd prefer it for most other things too. Please
|
||||
at least consider the points made here.
|
||||
|
||||
First off, I'd suggest printing out a copy of the GNU coding standards,
|
||||
and NOT read it. Burn them, it's a great symbolic gesture.
|
||||
|
||||
Anyway, here goes:
|
||||
|
||||
|
||||
Chapter 1: Indentation
|
||||
|
||||
Tabs are 8 characters, and thus indentations are also 8 characters.
|
||||
There are heretic movements that try to make indentations 4 (or even 2!)
|
||||
characters deep, and that is akin to trying to define the value of PI to
|
||||
be 3.
|
||||
|
||||
Rationale: The whole idea behind indentation is to clearly define where
|
||||
a block of control starts and ends. Especially when you've been looking
|
||||
at your screen for 20 straight hours, you'll find it a lot easier to see
|
||||
how the indentation works if you have large indentations.
|
||||
|
||||
Now, some people will claim that having 8-character indentations makes
|
||||
the code move too far to the right, and makes it hard to read on a
|
||||
80-character terminal screen. The answer to that is that if you need
|
||||
more than 3 levels of indentation, you're screwed anyway, and should fix
|
||||
your program.
|
||||
|
||||
In short, 8-char indents make things easier to read, and have the added
|
||||
benefit of warning you when you're nesting your functions too deep.
|
||||
Heed that warning.
|
||||
|
||||
The preferred way to ease multiple indentation levels in a switch statement is
|
||||
to align the "switch" and its subordinate "case" labels in the same column
|
||||
instead of "double-indenting" the "case" labels. E.g.:
|
||||
|
||||
switch (suffix) {
|
||||
case 'G':
|
||||
case 'g':
|
||||
mem <<= 30;
|
||||
break;
|
||||
case 'M':
|
||||
case 'm':
|
||||
mem <<= 20;
|
||||
break;
|
||||
case 'K':
|
||||
case 'k':
|
||||
mem <<= 10;
|
||||
/* fall through */
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Don't put multiple statements on a single line unless you have
|
||||
something to hide:
|
||||
|
||||
if (condition) do_this;
|
||||
do_something_everytime;
|
||||
|
||||
Don't put multiple assignments on a single line either. Kernel coding style
|
||||
is super simple. Avoid tricky expressions.
|
||||
|
||||
Outside of comments, documentation and except in Kconfig, spaces are never
|
||||
used for indentation, and the above example is deliberately broken.
|
||||
|
||||
Get a decent editor and don't leave whitespace at the end of lines.
|
||||
|
||||
|
||||
Chapter 2: Breaking long lines and strings
|
||||
|
||||
Coding style is all about readability and maintainability using commonly
|
||||
available tools.
|
||||
|
||||
The limit on the length of lines is 80 columns and this is a strongly
|
||||
preferred limit.
|
||||
|
||||
Statements longer than 80 columns will be broken into sensible chunks.
|
||||
Descendants are always substantially shorter than the parent and are placed
|
||||
substantially to the right. The same applies to function headers with a long
|
||||
argument list. Long strings are as well broken into shorter strings. The
|
||||
only exception to this is where exceeding 80 columns significantly increases
|
||||
readability and does not hide information.
|
||||
|
||||
void fun(int a, int b, int c)
|
||||
{
|
||||
if (condition)
|
||||
printk(KERN_WARNING "Warning this is a long printk with "
|
||||
"3 parameters a: %u b: %u "
|
||||
"c: %u \n", a, b, c);
|
||||
else
|
||||
next_statement;
|
||||
}
|
||||
|
||||
Chapter 3: Placing Braces and Spaces
|
||||
|
||||
The other issue that always comes up in C styling is the placement of
|
||||
braces. Unlike the indent size, there are few technical reasons to
|
||||
choose one placement strategy over the other, but the preferred way, as
|
||||
shown to us by the prophets Kernighan and Ritchie, is to put the opening
|
||||
brace last on the line, and put the closing brace first, thusly:
|
||||
|
||||
if (x is true) {
|
||||
we do y
|
||||
}
|
||||
|
||||
This applies to all non-function statement blocks (if, switch, for,
|
||||
while, do). E.g.:
|
||||
|
||||
switch (action) {
|
||||
case KOBJ_ADD:
|
||||
return "add";
|
||||
case KOBJ_REMOVE:
|
||||
return "remove";
|
||||
case KOBJ_CHANGE:
|
||||
return "change";
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
However, there is one special case, namely functions: they have the
|
||||
opening brace at the beginning of the next line, thus:
|
||||
|
||||
int function(int x)
|
||||
{
|
||||
body of function
|
||||
}
|
||||
|
||||
Heretic people all over the world have claimed that this inconsistency
|
||||
is ... well ... inconsistent, but all right-thinking people know that
|
||||
(a) K&R are _right_ and (b) K&R are right. Besides, functions are
|
||||
special anyway (you can't nest them in C).
|
||||
|
||||
Note that the closing brace is empty on a line of its own, _except_ in
|
||||
the cases where it is followed by a continuation of the same statement,
|
||||
ie a "while" in a do-statement or an "else" in an if-statement, like
|
||||
this:
|
||||
|
||||
do {
|
||||
body of do-loop
|
||||
} while (condition);
|
||||
|
||||
and
|
||||
|
||||
if (x == y) {
|
||||
..
|
||||
} else if (x > y) {
|
||||
...
|
||||
} else {
|
||||
....
|
||||
}
|
||||
|
||||
Rationale: K&R.
|
||||
|
||||
Also, note that this brace-placement also minimizes the number of empty
|
||||
(or almost empty) lines, without any loss of readability. Thus, as the
|
||||
supply of new-lines on your screen is not a renewable resource (think
|
||||
25-line terminal screens here), you have more empty lines to put
|
||||
comments on.
|
||||
|
||||
Do not unnecessarily use braces where a single statement will do.
|
||||
|
||||
if (condition)
|
||||
action();
|
||||
|
||||
This does not apply if one branch of a conditional statement is a single
|
||||
statement. Use braces in both branches.
|
||||
|
||||
if (condition) {
|
||||
do_this();
|
||||
do_that();
|
||||
} else {
|
||||
otherwise();
|
||||
}
|
||||
|
||||
3.1: Spaces
|
||||
|
||||
Linux kernel style for use of spaces depends (mostly) on
|
||||
function-versus-keyword usage. Use a space after (most) keywords. The
|
||||
notable exceptions are sizeof, typeof, alignof, and __attribute__, which look
|
||||
somewhat like functions (and are usually used with parentheses in Linux,
|
||||
although they are not required in the language, as in: "sizeof info" after
|
||||
"struct fileinfo info;" is declared).
|
||||
|
||||
So use a space after these keywords:
|
||||
if, switch, case, for, do, while
|
||||
but not with sizeof, typeof, alignof, or __attribute__. E.g.,
|
||||
s = sizeof(struct file);
|
||||
|
||||
Do not add spaces around (inside) parenthesized expressions. This example is
|
||||
*bad*:
|
||||
|
||||
s = sizeof( struct file );
|
||||
|
||||
When declaring pointer data or a function that returns a pointer type, the
|
||||
preferred use of '*' is adjacent to the data name or function name and not
|
||||
adjacent to the type name. Examples:
|
||||
|
||||
char *linux_banner;
|
||||
unsigned long long memparse(char *ptr, char **retptr);
|
||||
char *match_strdup(substring_t *s);
|
||||
|
||||
Use one space around (on each side of) most binary and ternary operators,
|
||||
such as any of these:
|
||||
|
||||
= + - < > * / % | & ^ <= >= == != ? :
|
||||
|
||||
but no space after unary operators:
|
||||
& * + - ~ ! sizeof typeof alignof __attribute__ defined
|
||||
|
||||
no space before the postfix increment & decrement unary operators:
|
||||
++ --
|
||||
|
||||
no space after the prefix increment & decrement unary operators:
|
||||
++ --
|
||||
|
||||
and no space around the '.' and "->" structure member operators.
|
||||
|
||||
Do not leave trailing whitespace at the ends of lines. Some editors with
|
||||
"smart" indentation will insert whitespace at the beginning of new lines as
|
||||
appropriate, so you can start typing the next line of code right away.
|
||||
However, some such editors do not remove the whitespace if you end up not
|
||||
putting a line of code there, such as if you leave a blank line. As a result,
|
||||
you end up with lines containing trailing whitespace.
|
||||
|
||||
Git will warn you about patches that introduce trailing whitespace, and can
|
||||
optionally strip the trailing whitespace for you; however, if applying a series
|
||||
of patches, this may make later patches in the series fail by changing their
|
||||
context lines.
|
||||
|
||||
|
||||
Chapter 4: Naming
|
||||
|
||||
C is a Spartan language, and so should your naming be. Unlike Modula-2
|
||||
and Pascal programmers, C programmers do not use cute names like
|
||||
ThisVariableIsATemporaryCounter. A C programmer would call that
|
||||
variable "tmp", which is much easier to write, and not the least more
|
||||
difficult to understand.
|
||||
|
||||
HOWEVER, while mixed-case names are frowned upon, descriptive names for
|
||||
global variables are a must. To call a global function "foo" is a
|
||||
shooting offense.
|
||||
|
||||
GLOBAL variables (to be used only if you _really_ need them) need to
|
||||
have descriptive names, as do global functions. If you have a function
|
||||
that counts the number of active users, you should call that
|
||||
"count_active_users()" or similar, you should _not_ call it "cntusr()".
|
||||
|
||||
Encoding the type of a function into the name (so-called Hungarian
|
||||
notation) is brain damaged - the compiler knows the types anyway and can
|
||||
check those, and it only confuses the programmer. No wonder MicroSoft
|
||||
makes buggy programs.
|
||||
|
||||
LOCAL variable names should be short, and to the point. If you have
|
||||
some random integer loop counter, it should probably be called "i".
|
||||
Calling it "loop_counter" is non-productive, if there is no chance of it
|
||||
being mis-understood. Similarly, "tmp" can be just about any type of
|
||||
variable that is used to hold a temporary value.
|
||||
|
||||
If you are afraid to mix up your local variable names, you have another
|
||||
problem, which is called the function-growth-hormone-imbalance syndrome.
|
||||
See chapter 6 (Functions).
|
||||
|
||||
|
||||
Chapter 5: Typedefs
|
||||
|
||||
Please don't use things like "vps_t".
|
||||
|
||||
It's a _mistake_ to use typedef for structures and pointers. When you see a
|
||||
|
||||
vps_t a;
|
||||
|
||||
in the source, what does it mean?
|
||||
|
||||
In contrast, if it says
|
||||
|
||||
struct virtual_container *a;
|
||||
|
||||
you can actually tell what "a" is.
|
||||
|
||||
Lots of people think that typedefs "help readability". Not so. They are
|
||||
useful only for:
|
||||
|
||||
(a) totally opaque objects (where the typedef is actively used to _hide_
|
||||
what the object is).
|
||||
|
||||
Example: "pte_t" etc. opaque objects that you can only access using
|
||||
the proper accessor functions.
|
||||
|
||||
NOTE! Opaqueness and "accessor functions" are not good in themselves.
|
||||
The reason we have them for things like pte_t etc. is that there
|
||||
really is absolutely _zero_ portably accessible information there.
|
||||
|
||||
(b) Clear integer types, where the abstraction _helps_ avoid confusion
|
||||
whether it is "int" or "long".
|
||||
|
||||
u8/u16/u32 are perfectly fine typedefs, although they fit into
|
||||
category (d) better than here.
|
||||
|
||||
NOTE! Again - there needs to be a _reason_ for this. If something is
|
||||
"unsigned long", then there's no reason to do
|
||||
|
||||
typedef unsigned long myflags_t;
|
||||
|
||||
but if there is a clear reason for why it under certain circumstances
|
||||
might be an "unsigned int" and under other configurations might be
|
||||
"unsigned long", then by all means go ahead and use a typedef.
|
||||
|
||||
(c) when you use sparse to literally create a _new_ type for
|
||||
type-checking.
|
||||
|
||||
(d) New types which are identical to standard C99 types, in certain
|
||||
exceptional circumstances.
|
||||
|
||||
Although it would only take a short amount of time for the eyes and
|
||||
brain to become accustomed to the standard types like 'uint32_t',
|
||||
some people object to their use anyway.
|
||||
|
||||
Therefore, the Linux-specific 'u8/u16/u32/u64' types and their
|
||||
signed equivalents which are identical to standard types are
|
||||
permitted -- although they are not mandatory in new code of your
|
||||
own.
|
||||
|
||||
When editing existing code which already uses one or the other set
|
||||
of types, you should conform to the existing choices in that code.
|
||||
|
||||
(e) Types safe for use in userspace.
|
||||
|
||||
In certain structures which are visible to userspace, we cannot
|
||||
require C99 types and cannot use the 'u32' form above. Thus, we
|
||||
use __u32 and similar types in all structures which are shared
|
||||
with userspace.
|
||||
|
||||
Maybe there are other cases too, but the rule should basically be to NEVER
|
||||
EVER use a typedef unless you can clearly match one of those rules.
|
||||
|
||||
In general, a pointer, or a struct that has elements that can reasonably
|
||||
be directly accessed should _never_ be a typedef.
|
||||
|
||||
|
||||
Chapter 6: Functions
|
||||
|
||||
Functions should be short and sweet, and do just one thing. They should
|
||||
fit on one or two screenfuls of text (the ISO/ANSI screen size is 80x24,
|
||||
as we all know), and do one thing and do that well.
|
||||
|
||||
The maximum length of a function is inversely proportional to the
|
||||
complexity and indentation level of that function. So, if you have a
|
||||
conceptually simple function that is just one long (but simple)
|
||||
case-statement, where you have to do lots of small things for a lot of
|
||||
different cases, it's OK to have a longer function.
|
||||
|
||||
However, if you have a complex function, and you suspect that a
|
||||
less-than-gifted first-year high-school student might not even
|
||||
understand what the function is all about, you should adhere to the
|
||||
maximum limits all the more closely. Use helper functions with
|
||||
descriptive names (you can ask the compiler to in-line them if you think
|
||||
it's performance-critical, and it will probably do a better job of it
|
||||
than you would have done).
|
||||
|
||||
Another measure of the function is the number of local variables. They
|
||||
shouldn't exceed 5-10, or you're doing something wrong. Re-think the
|
||||
function, and split it into smaller pieces. A human brain can
|
||||
generally easily keep track of about 7 different things, anything more
|
||||
and it gets confused. You know you're brilliant, but maybe you'd like
|
||||
to understand what you did 2 weeks from now.
|
||||
|
||||
In source files, separate functions with one blank line. If the function is
|
||||
exported, the EXPORT* macro for it should follow immediately after the closing
|
||||
function brace line. E.g.:
|
||||
|
||||
int system_is_up(void)
|
||||
{
|
||||
return system_state == SYSTEM_RUNNING;
|
||||
}
|
||||
EXPORT_SYMBOL(system_is_up);
|
||||
|
||||
In function prototypes, include parameter names with their data types.
|
||||
Although this is not required by the C language, it is preferred in Linux
|
||||
because it is a simple way to add valuable information for the reader.
|
||||
|
||||
|
||||
Chapter 7: Centralized exiting of functions
|
||||
|
||||
Albeit deprecated by some people, the equivalent of the goto statement is
|
||||
used frequently by compilers in form of the unconditional jump instruction.
|
||||
|
||||
The goto statement comes in handy when a function exits from multiple
|
||||
locations and some common work such as cleanup has to be done.
|
||||
|
||||
The rationale is:
|
||||
|
||||
- unconditional statements are easier to understand and follow
|
||||
- nesting is reduced
|
||||
- errors by not updating individual exit points when making
|
||||
modifications are prevented
|
||||
- saves the compiler work to optimize redundant code away ;)
|
||||
|
||||
int fun(int a)
|
||||
{
|
||||
int result = 0;
|
||||
char *buffer = kmalloc(SIZE);
|
||||
|
||||
if (buffer == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
if (condition1) {
|
||||
while (loop1) {
|
||||
...
|
||||
}
|
||||
result = 1;
|
||||
goto out;
|
||||
}
|
||||
...
|
||||
out:
|
||||
kfree(buffer);
|
||||
return result;
|
||||
}
|
||||
|
||||
Chapter 8: Commenting
|
||||
|
||||
Comments are good, but there is also a danger of over-commenting. NEVER
|
||||
try to explain HOW your code works in a comment: it's much better to
|
||||
write the code so that the _working_ is obvious, and it's a waste of
|
||||
time to explain badly written code.
|
||||
|
||||
Generally, you want your comments to tell WHAT your code does, not HOW.
|
||||
Also, try to avoid putting comments inside a function body: if the
|
||||
function is so complex that you need to separately comment parts of it,
|
||||
you should probably go back to chapter 6 for a while. You can make
|
||||
small comments to note or warn about something particularly clever (or
|
||||
ugly), but try to avoid excess. Instead, put the comments at the head
|
||||
of the function, telling people what it does, and possibly WHY it does
|
||||
it.
|
||||
|
||||
When commenting the kernel API functions, please use the kernel-doc format.
|
||||
See the files Documentation/kernel-doc-nano-HOWTO.txt and scripts/kernel-doc
|
||||
for details.
|
||||
|
||||
Linux style for comments is the C89 "/* ... */" style.
|
||||
Don't use C99-style "// ..." comments.
|
||||
|
||||
The preferred style for long (multi-line) comments is:
|
||||
|
||||
/*
|
||||
* This is the preferred style for multi-line
|
||||
* comments in the Linux kernel source code.
|
||||
* Please use it consistently.
|
||||
*
|
||||
* Description: A column of asterisks on the left side,
|
||||
* with beginning and ending almost-blank lines.
|
||||
*/
|
||||
|
||||
It's also important to comment data, whether they are basic types or derived
|
||||
types. To this end, use just one data declaration per line (no commas for
|
||||
multiple data declarations). This leaves you room for a small comment on each
|
||||
item, explaining its use.
|
||||
|
||||
|
||||
Chapter 9: You've made a mess of it
|
||||
|
||||
That's OK, we all do. You've probably been told by your long-time Unix
|
||||
user helper that "GNU emacs" automatically formats the C sources for
|
||||
you, and you've noticed that yes, it does do that, but the defaults it
|
||||
uses are less than desirable (in fact, they are worse than random
|
||||
typing - an infinite number of monkeys typing into GNU emacs would never
|
||||
make a good program).
|
||||
|
||||
So, you can either get rid of GNU emacs, or change it to use saner
|
||||
values. To do the latter, you can stick the following in your .emacs file:
|
||||
|
||||
(defun c-lineup-arglist-tabs-only (ignored)
|
||||
"Line up argument lists by tabs, not spaces"
|
||||
(let* ((anchor (c-langelem-pos c-syntactic-element))
|
||||
(column (c-langelem-2nd-pos c-syntactic-element))
|
||||
(offset (- (1+ column) anchor))
|
||||
(steps (floor offset c-basic-offset)))
|
||||
(* (max steps 1)
|
||||
c-basic-offset)))
|
||||
|
||||
(add-hook 'c-mode-common-hook
|
||||
(lambda ()
|
||||
;; Add kernel style
|
||||
(c-add-style
|
||||
"linux-tabs-only"
|
||||
'("linux" (c-offsets-alist
|
||||
(arglist-cont-nonempty
|
||||
c-lineup-gcc-asm-reg
|
||||
c-lineup-arglist-tabs-only))))))
|
||||
|
||||
(add-hook 'c-mode-hook
|
||||
(lambda ()
|
||||
(let ((filename (buffer-file-name)))
|
||||
;; Enable kernel mode for the appropriate files
|
||||
(when (and filename
|
||||
(string-match (expand-file-name "~/src/linux-trees")
|
||||
filename))
|
||||
(setq indent-tabs-mode t)
|
||||
(c-set-style "linux-tabs-only")))))
|
||||
|
||||
This will make emacs go better with the kernel coding style for C
|
||||
files below ~/src/linux-trees.
|
||||
|
||||
But even if you fail in getting emacs to do sane formatting, not
|
||||
everything is lost: use "indent".
|
||||
|
||||
Now, again, GNU indent has the same brain-dead settings that GNU emacs
|
||||
has, which is why you need to give it a few command line options.
|
||||
However, that's not too bad, because even the makers of GNU indent
|
||||
recognize the authority of K&R (the GNU people aren't evil, they are
|
||||
just severely misguided in this matter), so you just give indent the
|
||||
options "-kr -i8" (stands for "K&R, 8 character indents"), or use
|
||||
"scripts/Lindent", which indents in the latest style.
|
||||
|
||||
"indent" has a lot of options, and especially when it comes to comment
|
||||
re-formatting you may want to take a look at the man page. But
|
||||
remember: "indent" is not a fix for bad programming.
|
||||
|
||||
|
||||
Chapter 10: Kconfig configuration files
|
||||
|
||||
For all of the Kconfig* configuration files throughout the source tree,
|
||||
the indentation is somewhat different. Lines under a "config" definition
|
||||
are indented with one tab, while help text is indented an additional two
|
||||
spaces. Example:
|
||||
|
||||
config AUDIT
|
||||
bool "Auditing support"
|
||||
depends on NET
|
||||
help
|
||||
Enable auditing infrastructure that can be used with another
|
||||
kernel subsystem, such as SELinux (which requires this for
|
||||
logging of avc messages output). Does not do system-call
|
||||
auditing without CONFIG_AUDITSYSCALL.
|
||||
|
||||
Features that might still be considered unstable should be defined as
|
||||
dependent on "EXPERIMENTAL":
|
||||
|
||||
config SLUB
|
||||
depends on EXPERIMENTAL && !ARCH_USES_SLAB_PAGE_STRUCT
|
||||
bool "SLUB (Unqueued Allocator)"
|
||||
...
|
||||
|
||||
while seriously dangerous features (such as write support for certain
|
||||
filesystems) should advertise this prominently in their prompt string:
|
||||
|
||||
config ADFS_FS_RW
|
||||
bool "ADFS write support (DANGEROUS)"
|
||||
depends on ADFS_FS
|
||||
...
|
||||
|
||||
For full documentation on the configuration files, see the file
|
||||
Documentation/kbuild/kconfig-language.txt.
|
||||
|
||||
|
||||
Chapter 11: Data structures
|
||||
|
||||
Data structures that have visibility outside the single-threaded
|
||||
environment they are created and destroyed in should always have
|
||||
reference counts. In the kernel, garbage collection doesn't exist (and
|
||||
outside the kernel garbage collection is slow and inefficient), which
|
||||
means that you absolutely _have_ to reference count all your uses.
|
||||
|
||||
Reference counting means that you can avoid locking, and allows multiple
|
||||
users to have access to the data structure in parallel - and not having
|
||||
to worry about the structure suddenly going away from under them just
|
||||
because they slept or did something else for a while.
|
||||
|
||||
Note that locking is _not_ a replacement for reference counting.
|
||||
Locking is used to keep data structures coherent, while reference
|
||||
counting is a memory management technique. Usually both are needed, and
|
||||
they are not to be confused with each other.
|
||||
|
||||
Many data structures can indeed have two levels of reference counting,
|
||||
when there are users of different "classes". The subclass count counts
|
||||
the number of subclass users, and decrements the global count just once
|
||||
when the subclass count goes to zero.
|
||||
|
||||
Examples of this kind of "multi-level-reference-counting" can be found in
|
||||
memory management ("struct mm_struct": mm_users and mm_count), and in
|
||||
filesystem code ("struct super_block": s_count and s_active).
|
||||
|
||||
Remember: if another thread can find your data structure, and you don't
|
||||
have a reference count on it, you almost certainly have a bug.
|
||||
|
||||
|
||||
Chapter 12: Macros, Enums and RTL
|
||||
|
||||
Names of macros defining constants and labels in enums are capitalized.
|
||||
|
||||
#define CONSTANT 0x12345
|
||||
|
||||
Enums are preferred when defining several related constants.
|
||||
|
||||
CAPITALIZED macro names are appreciated but macros resembling functions
|
||||
may be named in lower case.
|
||||
|
||||
Generally, inline functions are preferable to macros resembling functions.
|
||||
|
||||
Macros with multiple statements should be enclosed in a do - while block:
|
||||
|
||||
#define macrofun(a, b, c) \
|
||||
do { \
|
||||
if (a == 5) \
|
||||
do_this(b, c); \
|
||||
} while (0)
|
||||
|
||||
Things to avoid when using macros:
|
||||
|
||||
1) macros that affect control flow:
|
||||
|
||||
#define FOO(x) \
|
||||
do { \
|
||||
if (blah(x) < 0) \
|
||||
return -EBUGGERED; \
|
||||
} while(0)
|
||||
|
||||
is a _very_ bad idea. It looks like a function call but exits the "calling"
|
||||
function; don't break the internal parsers of those who will read the code.
|
||||
|
||||
2) macros that depend on having a local variable with a magic name:
|
||||
|
||||
#define FOO(val) bar(index, val)
|
||||
|
||||
might look like a good thing, but it's confusing as hell when one reads the
|
||||
code and it's prone to breakage from seemingly innocent changes.
|
||||
|
||||
3) macros with arguments that are used as l-values: FOO(x) = y; will
|
||||
bite you if somebody e.g. turns FOO into an inline function.
|
||||
|
||||
4) forgetting about precedence: macros defining constants using expressions
|
||||
must enclose the expression in parentheses. Beware of similar issues with
|
||||
macros using parameters.
|
||||
|
||||
#define CONSTANT 0x4000
|
||||
#define CONSTEXP (CONSTANT | 3)
|
||||
|
||||
The cpp manual deals with macros exhaustively. The gcc internals manual also
|
||||
covers RTL which is used frequently with assembly language in the kernel.
|
||||
|
||||
|
||||
Chapter 13: Printing kernel messages
|
||||
|
||||
Kernel developers like to be seen as literate. Do mind the spelling
|
||||
of kernel messages to make a good impression. Do not use crippled
|
||||
words like "dont"; use "do not" or "don't" instead. Make the messages
|
||||
concise, clear, and unambiguous.
|
||||
|
||||
Kernel messages do not have to be terminated with a period.
|
||||
|
||||
Printing numbers in parentheses (%d) adds no value and should be avoided.
|
||||
|
||||
There are a number of driver model diagnostic macros in <linux/device.h>
|
||||
which you should use to make sure messages are matched to the right device
|
||||
and driver, and are tagged with the right level: dev_err(), dev_warn(),
|
||||
dev_info(), and so forth. For messages that aren't associated with a
|
||||
particular device, <linux/kernel.h> defines pr_debug() and pr_info().
|
||||
|
||||
Coming up with good debugging messages can be quite a challenge; and once
|
||||
you have them, they can be a huge help for remote troubleshooting. Such
|
||||
messages should be compiled out when the DEBUG symbol is not defined (that
|
||||
is, by default they are not included). When you use dev_dbg() or pr_debug(),
|
||||
that's automatic. Many subsystems have Kconfig options to turn on -DDEBUG.
|
||||
A related convention uses VERBOSE_DEBUG to add dev_vdbg() messages to the
|
||||
ones already enabled by DEBUG.
|
||||
|
||||
|
||||
Chapter 14: Allocating memory
|
||||
|
||||
The kernel provides the following general purpose memory allocators:
|
||||
kmalloc(), kzalloc(), kcalloc(), and vmalloc(). Please refer to the API
|
||||
documentation for further information about them.
|
||||
|
||||
The preferred form for passing a size of a struct is the following:
|
||||
|
||||
p = kmalloc(sizeof(*p), ...);
|
||||
|
||||
The alternative form where struct name is spelled out hurts readability and
|
||||
introduces an opportunity for a bug when the pointer variable type is changed
|
||||
but the corresponding sizeof that is passed to a memory allocator is not.
|
||||
|
||||
Casting the return value which is a void pointer is redundant. The conversion
|
||||
from void pointer to any other pointer type is guaranteed by the C programming
|
||||
language.
|
||||
|
||||
|
||||
Chapter 15: The inline disease
|
||||
|
||||
There appears to be a common misperception that gcc has a magic "make me
|
||||
faster" speedup option called "inline". While the use of inlines can be
|
||||
appropriate (for example as a means of replacing macros, see Chapter 12), it
|
||||
very often is not. Abundant use of the inline keyword leads to a much bigger
|
||||
kernel, which in turn slows the system as a whole down, due to a bigger
|
||||
icache footprint for the CPU and simply because there is less memory
|
||||
available for the pagecache. Just think about it; a pagecache miss causes a
|
||||
disk seek, which easily takes 5 miliseconds. There are a LOT of cpu cycles
|
||||
that can go into these 5 miliseconds.
|
||||
|
||||
A reasonable rule of thumb is to not put inline at functions that have more
|
||||
than 3 lines of code in them. An exception to this rule are the cases where
|
||||
a parameter is known to be a compiletime constant, and as a result of this
|
||||
constantness you *know* the compiler will be able to optimize most of your
|
||||
function away at compile time. For a good example of this later case, see
|
||||
the kmalloc() inline function.
|
||||
|
||||
Often people argue that adding inline to functions that are static and used
|
||||
only once is always a win since there is no space tradeoff. While this is
|
||||
technically correct, gcc is capable of inlining these automatically without
|
||||
help, and the maintenance issue of removing the inline when a second user
|
||||
appears outweighs the potential value of the hint that tells gcc to do
|
||||
something it would have done anyway.
|
||||
|
||||
|
||||
Chapter 16: Function return values and names
|
||||
|
||||
Functions can return values of many different kinds, and one of the
|
||||
most common is a value indicating whether the function succeeded or
|
||||
failed. Such a value can be represented as an error-code integer
|
||||
(-Exxx = failure, 0 = success) or a "succeeded" boolean (0 = failure,
|
||||
non-zero = success).
|
||||
|
||||
Mixing up these two sorts of representations is a fertile source of
|
||||
difficult-to-find bugs. If the C language included a strong distinction
|
||||
between integers and booleans then the compiler would find these mistakes
|
||||
for us... but it doesn't. To help prevent such bugs, always follow this
|
||||
convention:
|
||||
|
||||
If the name of a function is an action or an imperative command,
|
||||
the function should return an error-code integer. If the name
|
||||
is a predicate, the function should return a "succeeded" boolean.
|
||||
|
||||
For example, "add work" is a command, and the add_work() function returns 0
|
||||
for success or -EBUSY for failure. In the same way, "PCI device present" is
|
||||
a predicate, and the pci_dev_present() function returns 1 if it succeeds in
|
||||
finding a matching device or 0 if it doesn't.
|
||||
|
||||
All EXPORTed functions must respect this convention, and so should all
|
||||
public functions. Private (static) functions need not, but it is
|
||||
recommended that they do.
|
||||
|
||||
Functions whose return value is the actual result of a computation, rather
|
||||
than an indication of whether the computation succeeded, are not subject to
|
||||
this rule. Generally they indicate failure by returning some out-of-range
|
||||
result. Typical examples would be functions that return pointers; they use
|
||||
NULL or the ERR_PTR mechanism to report failure.
|
||||
|
||||
|
||||
Chapter 17: Don't re-invent the kernel macros
|
||||
|
||||
The header file include/linux/kernel.h contains a number of macros that
|
||||
you should use, rather than explicitly coding some variant of them yourself.
|
||||
For example, if you need to calculate the length of an array, take advantage
|
||||
of the macro
|
||||
|
||||
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
|
||||
|
||||
Similarly, if you need to calculate the size of some structure member, use
|
||||
|
||||
#define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
|
||||
|
||||
There are also min() and max() macros that do strict type checking if you
|
||||
need them. Feel free to peruse that header file to see what else is already
|
||||
defined that you shouldn't reproduce in your code.
|
||||
|
||||
|
||||
Chapter 18: Editor modelines and other cruft
|
||||
|
||||
Some editors can interpret configuration information embedded in source files,
|
||||
indicated with special markers. For example, emacs interprets lines marked
|
||||
like this:
|
||||
|
||||
-*- mode: c -*-
|
||||
|
||||
Or like this:
|
||||
|
||||
/*
|
||||
Local Variables:
|
||||
compile-command: "gcc -DMAGIC_DEBUG_FLAG foo.c"
|
||||
End:
|
||||
*/
|
||||
|
||||
Vim interprets markers that look like this:
|
||||
|
||||
/* vim:set sw=8 noet */
|
||||
|
||||
Do not include any of these in source files. People have their own personal
|
||||
editor configurations, and your source files should not override them. This
|
||||
includes markers for indentation and mode configuration. People may use their
|
||||
own custom mode, or may have some other magic method for making indentation
|
||||
work correctly.
|
||||
|
||||
|
||||
|
||||
Appendix I: References
|
||||
|
||||
The C Programming Language, Second Edition
|
||||
by Brian W. Kernighan and Dennis M. Ritchie.
|
||||
Prentice Hall, Inc., 1988.
|
||||
ISBN 0-13-110362-8 (paperback), 0-13-110370-9 (hardback).
|
||||
URL: http://cm.bell-labs.com/cm/cs/cbook/
|
||||
|
||||
The Practice of Programming
|
||||
by Brian W. Kernighan and Rob Pike.
|
||||
Addison-Wesley, Inc., 1999.
|
||||
ISBN 0-201-61586-X.
|
||||
URL: http://cm.bell-labs.com/cm/cs/tpop/
|
||||
|
||||
GNU manuals - where in compliance with K&R and this text - for cpp, gcc,
|
||||
gcc internals and indent, all available from http://www.gnu.org/manual/
|
||||
|
||||
WG14 is the international standardization working group for the programming
|
||||
language C, URL: http://www.open-std.org/JTC1/SC22/WG14/
|
||||
|
||||
Kernel CodingStyle, by greg@kroah.com at OLS 2002:
|
||||
http://www.kroah.com/linux/talks/ols_2002_kernel_codingstyle_talk/html/
|
||||
|
||||
--
|
||||
Last updated on 2007-July-13.
|
||||
|
||||
@@ -1,568 +0,0 @@
|
||||
I don't have specific submission guidelines for Syslinux, but the ones
|
||||
that appropriate to the Linux kernel are certainly good enough for
|
||||
Syslinux.
|
||||
|
||||
In particular, however, I appreciate if patches sent follow the
|
||||
standard Linux submission format, as I can automatically import them
|
||||
into git, retaining description and author information. Thus, this
|
||||
file from the Linux kernel might be useful.
|
||||
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
How to Get Your Change Into the Linux Kernel
|
||||
or
|
||||
Care And Operation Of Your Linus Torvalds
|
||||
|
||||
|
||||
|
||||
For a person or company who wishes to submit a change to the Linux
|
||||
kernel, the process can sometimes be daunting if you're not familiar
|
||||
with "the system." This text is a collection of suggestions which
|
||||
can greatly increase the chances of your change being accepted.
|
||||
|
||||
Read Documentation/SubmitChecklist for a list of items to check
|
||||
before submitting code. If you are submitting a driver, also read
|
||||
Documentation/SubmittingDrivers.
|
||||
|
||||
|
||||
|
||||
--------------------------------------------
|
||||
SECTION 1 - CREATING AND SENDING YOUR CHANGE
|
||||
--------------------------------------------
|
||||
|
||||
|
||||
|
||||
1) "diff -up"
|
||||
------------
|
||||
|
||||
Use "diff -up" or "diff -uprN" to create patches.
|
||||
|
||||
All changes to the Linux kernel occur in the form of patches, as
|
||||
generated by diff(1). When creating your patch, make sure to create it
|
||||
in "unified diff" format, as supplied by the '-u' argument to diff(1).
|
||||
Also, please use the '-p' argument which shows which C function each
|
||||
change is in - that makes the resultant diff a lot easier to read.
|
||||
Patches should be based in the root kernel source directory,
|
||||
not in any lower subdirectory.
|
||||
|
||||
To create a patch for a single file, it is often sufficient to do:
|
||||
|
||||
SRCTREE= linux-2.6
|
||||
MYFILE= drivers/net/mydriver.c
|
||||
|
||||
cd $SRCTREE
|
||||
cp $MYFILE $MYFILE.orig
|
||||
vi $MYFILE # make your change
|
||||
cd ..
|
||||
diff -up $SRCTREE/$MYFILE{.orig,} > /tmp/patch
|
||||
|
||||
To create a patch for multiple files, you should unpack a "vanilla",
|
||||
or unmodified kernel source tree, and generate a diff against your
|
||||
own source tree. For example:
|
||||
|
||||
MYSRC= /devel/linux-2.6
|
||||
|
||||
tar xvfz linux-2.6.12.tar.gz
|
||||
mv linux-2.6.12 linux-2.6.12-vanilla
|
||||
diff -uprN -X linux-2.6.12-vanilla/Documentation/dontdiff \
|
||||
linux-2.6.12-vanilla $MYSRC > /tmp/patch
|
||||
|
||||
"dontdiff" is a list of files which are generated by the kernel during
|
||||
the build process, and should be ignored in any diff(1)-generated
|
||||
patch. The "dontdiff" file is included in the kernel tree in
|
||||
2.6.12 and later. For earlier kernel versions, you can get it
|
||||
from <http://www.xenotime.net/linux/doc/dontdiff>.
|
||||
|
||||
Make sure your patch does not include any extra files which do not
|
||||
belong in a patch submission. Make sure to review your patch -after-
|
||||
generated it with diff(1), to ensure accuracy.
|
||||
|
||||
If your changes produce a lot of deltas, you may want to look into
|
||||
splitting them into individual patches which modify things in
|
||||
logical stages. This will facilitate easier reviewing by other
|
||||
kernel developers, very important if you want your patch accepted.
|
||||
There are a number of scripts which can aid in this:
|
||||
|
||||
Quilt:
|
||||
http://savannah.nongnu.org/projects/quilt
|
||||
|
||||
Andrew Morton's patch scripts:
|
||||
http://www.zip.com.au/~akpm/linux/patches/
|
||||
Instead of these scripts, quilt is the recommended patch management
|
||||
tool (see above).
|
||||
|
||||
|
||||
|
||||
2) Describe your changes.
|
||||
|
||||
Describe the technical detail of the change(s) your patch includes.
|
||||
|
||||
Be as specific as possible. The WORST descriptions possible include
|
||||
things like "update driver X", "bug fix for driver X", or "this patch
|
||||
includes updates for subsystem X. Please apply."
|
||||
|
||||
If your description starts to get long, that's a sign that you probably
|
||||
need to split up your patch. See #3, next.
|
||||
|
||||
|
||||
|
||||
3) Separate your changes.
|
||||
|
||||
Separate _logical changes_ into a single patch file.
|
||||
|
||||
For example, if your changes include both bug fixes and performance
|
||||
enhancements for a single driver, separate those changes into two
|
||||
or more patches. If your changes include an API update, and a new
|
||||
driver which uses that new API, separate those into two patches.
|
||||
|
||||
On the other hand, if you make a single change to numerous files,
|
||||
group those changes into a single patch. Thus a single logical change
|
||||
is contained within a single patch.
|
||||
|
||||
If one patch depends on another patch in order for a change to be
|
||||
complete, that is OK. Simply note "this patch depends on patch X"
|
||||
in your patch description.
|
||||
|
||||
If you cannot condense your patch set into a smaller set of patches,
|
||||
then only post say 15 or so at a time and wait for review and integration.
|
||||
|
||||
|
||||
|
||||
4) Style check your changes.
|
||||
|
||||
Check your patch for basic style violations, details of which can be
|
||||
found in Documentation/CodingStyle. Failure to do so simply wastes
|
||||
the reviewers time and will get your patch rejected, probably
|
||||
without even being read.
|
||||
|
||||
At a minimum you should check your patches with the patch style
|
||||
checker prior to submission (scripts/checkpatch.pl). You should
|
||||
be able to justify all violations that remain in your patch.
|
||||
|
||||
|
||||
|
||||
5) Select e-mail destination.
|
||||
|
||||
Look through the MAINTAINERS file and the source code, and determine
|
||||
if your change applies to a specific subsystem of the kernel, with
|
||||
an assigned maintainer. If so, e-mail that person.
|
||||
|
||||
If no maintainer is listed, or the maintainer does not respond, send
|
||||
your patch to the primary Linux kernel developer's mailing list,
|
||||
linux-kernel@vger.kernel.org. Most kernel developers monitor this
|
||||
e-mail list, and can comment on your changes.
|
||||
|
||||
|
||||
Do not send more than 15 patches at once to the vger mailing lists!!!
|
||||
|
||||
|
||||
Linus Torvalds is the final arbiter of all changes accepted into the
|
||||
Linux kernel. His e-mail address is <torvalds@linux-foundation.org>.
|
||||
He gets a lot of e-mail, so typically you should do your best to -avoid-
|
||||
sending him e-mail.
|
||||
|
||||
Patches which are bug fixes, are "obvious" changes, or similarly
|
||||
require little discussion should be sent or CC'd to Linus. Patches
|
||||
which require discussion or do not have a clear advantage should
|
||||
usually be sent first to linux-kernel. Only after the patch is
|
||||
discussed should the patch then be submitted to Linus.
|
||||
|
||||
|
||||
|
||||
6) Select your CC (e-mail carbon copy) list.
|
||||
|
||||
Unless you have a reason NOT to do so, CC linux-kernel@vger.kernel.org.
|
||||
|
||||
Other kernel developers besides Linus need to be aware of your change,
|
||||
so that they may comment on it and offer code review and suggestions.
|
||||
linux-kernel is the primary Linux kernel developer mailing list.
|
||||
Other mailing lists are available for specific subsystems, such as
|
||||
USB, framebuffer devices, the VFS, the SCSI subsystem, etc. See the
|
||||
MAINTAINERS file for a mailing list that relates specifically to
|
||||
your change.
|
||||
|
||||
Majordomo lists of VGER.KERNEL.ORG at:
|
||||
<http://vger.kernel.org/vger-lists.html>
|
||||
|
||||
If changes affect userland-kernel interfaces, please send
|
||||
the MAN-PAGES maintainer (as listed in the MAINTAINERS file)
|
||||
a man-pages patch, or at least a notification of the change,
|
||||
so that some information makes its way into the manual pages.
|
||||
|
||||
Even if the maintainer did not respond in step #4, make sure to ALWAYS
|
||||
copy the maintainer when you change their code.
|
||||
|
||||
For small patches you may want to CC the Trivial Patch Monkey
|
||||
trivial@kernel.org managed by Adrian Bunk; which collects "trivial"
|
||||
patches. Trivial patches must qualify for one of the following rules:
|
||||
Spelling fixes in documentation
|
||||
Spelling fixes which could break grep(1)
|
||||
Warning fixes (cluttering with useless warnings is bad)
|
||||
Compilation fixes (only if they are actually correct)
|
||||
Runtime fixes (only if they actually fix things)
|
||||
Removing use of deprecated functions/macros (eg. check_region)
|
||||
Contact detail and documentation fixes
|
||||
Non-portable code replaced by portable code (even in arch-specific,
|
||||
since people copy, as long as it's trivial)
|
||||
Any fix by the author/maintainer of the file (ie. patch monkey
|
||||
in re-transmission mode)
|
||||
URL: <http://www.kernel.org/pub/linux/kernel/people/bunk/trivial/>
|
||||
|
||||
|
||||
|
||||
7) No MIME, no links, no compression, no attachments. Just plain text.
|
||||
|
||||
Linus and other kernel developers need to be able to read and comment
|
||||
on the changes you are submitting. It is important for a kernel
|
||||
developer to be able to "quote" your changes, using standard e-mail
|
||||
tools, so that they may comment on specific portions of your code.
|
||||
|
||||
For this reason, all patches should be submitting e-mail "inline".
|
||||
WARNING: Be wary of your editor's word-wrap corrupting your patch,
|
||||
if you choose to cut-n-paste your patch.
|
||||
|
||||
Do not attach the patch as a MIME attachment, compressed or not.
|
||||
Many popular e-mail applications will not always transmit a MIME
|
||||
attachment as plain text, making it impossible to comment on your
|
||||
code. A MIME attachment also takes Linus a bit more time to process,
|
||||
decreasing the likelihood of your MIME-attached change being accepted.
|
||||
|
||||
Exception: If your mailer is mangling patches then someone may ask
|
||||
you to re-send them using MIME.
|
||||
|
||||
See Documentation/email-clients.txt for hints about configuring
|
||||
your e-mail client so that it sends your patches untouched.
|
||||
|
||||
8) E-mail size.
|
||||
|
||||
When sending patches to Linus, always follow step #7.
|
||||
|
||||
Large changes are not appropriate for mailing lists, and some
|
||||
maintainers. If your patch, uncompressed, exceeds 40 kB in size,
|
||||
it is preferred that you store your patch on an Internet-accessible
|
||||
server, and provide instead a URL (link) pointing to your patch.
|
||||
|
||||
|
||||
|
||||
9) Name your kernel version.
|
||||
|
||||
It is important to note, either in the subject line or in the patch
|
||||
description, the kernel version to which this patch applies.
|
||||
|
||||
If the patch does not apply cleanly to the latest kernel version,
|
||||
Linus will not apply it.
|
||||
|
||||
|
||||
|
||||
10) Don't get discouraged. Re-submit.
|
||||
|
||||
After you have submitted your change, be patient and wait. If Linus
|
||||
likes your change and applies it, it will appear in the next version
|
||||
of the kernel that he releases.
|
||||
|
||||
However, if your change doesn't appear in the next version of the
|
||||
kernel, there could be any number of reasons. It's YOUR job to
|
||||
narrow down those reasons, correct what was wrong, and submit your
|
||||
updated change.
|
||||
|
||||
It is quite common for Linus to "drop" your patch without comment.
|
||||
That's the nature of the system. If he drops your patch, it could be
|
||||
due to
|
||||
* Your patch did not apply cleanly to the latest kernel version.
|
||||
* Your patch was not sufficiently discussed on linux-kernel.
|
||||
* A style issue (see section 2).
|
||||
* An e-mail formatting issue (re-read this section).
|
||||
* A technical problem with your change.
|
||||
* He gets tons of e-mail, and yours got lost in the shuffle.
|
||||
* You are being annoying.
|
||||
|
||||
When in doubt, solicit comments on linux-kernel mailing list.
|
||||
|
||||
|
||||
|
||||
11) Include PATCH in the subject
|
||||
|
||||
Due to high e-mail traffic to Linus, and to linux-kernel, it is common
|
||||
convention to prefix your subject line with [PATCH]. This lets Linus
|
||||
and other kernel developers more easily distinguish patches from other
|
||||
e-mail discussions.
|
||||
|
||||
|
||||
|
||||
12) Sign your work
|
||||
|
||||
To improve tracking of who did what, especially with patches that can
|
||||
percolate to their final resting place in the kernel through several
|
||||
layers of maintainers, we've introduced a "sign-off" procedure on
|
||||
patches that are being emailed around.
|
||||
|
||||
The sign-off is a simple line at the end of the explanation for the
|
||||
patch, which certifies that you wrote it or otherwise have the right to
|
||||
pass it on as a open-source patch. The rules are pretty simple: if you
|
||||
can certify the below:
|
||||
|
||||
Developer's Certificate of Origin 1.1
|
||||
|
||||
By making a contribution to this project, I certify that:
|
||||
|
||||
(a) The contribution was created in whole or in part by me and I
|
||||
have the right to submit it under the open source license
|
||||
indicated in the file; or
|
||||
|
||||
(b) The contribution is based upon previous work that, to the best
|
||||
of my knowledge, is covered under an appropriate open source
|
||||
license and I have the right under that license to submit that
|
||||
work with modifications, whether created in whole or in part
|
||||
by me, under the same open source license (unless I am
|
||||
permitted to submit under a different license), as indicated
|
||||
in the file; or
|
||||
|
||||
(c) The contribution was provided directly to me by some other
|
||||
person who certified (a), (b) or (c) and I have not modified
|
||||
it.
|
||||
|
||||
(d) I understand and agree that this project and the contribution
|
||||
are public and that a record of the contribution (including all
|
||||
personal information I submit with it, including my sign-off) is
|
||||
maintained indefinitely and may be redistributed consistent with
|
||||
this project or the open source license(s) involved.
|
||||
|
||||
then you just add a line saying
|
||||
|
||||
Signed-off-by: Random J Developer <random@developer.example.org>
|
||||
|
||||
using your real name (sorry, no pseudonyms or anonymous contributions.)
|
||||
|
||||
Some people also put extra tags at the end. They'll just be ignored for
|
||||
now, but you can do this to mark internal company procedures or just
|
||||
point out some special detail about the sign-off.
|
||||
|
||||
|
||||
13) When to use Acked-by:
|
||||
|
||||
The Signed-off-by: tag indicates that the signer was involved in the
|
||||
development of the patch, or that he/she was in the patch's delivery path.
|
||||
|
||||
If a person was not directly involved in the preparation or handling of a
|
||||
patch but wishes to signify and record their approval of it then they can
|
||||
arrange to have an Acked-by: line added to the patch's changelog.
|
||||
|
||||
Acked-by: is often used by the maintainer of the affected code when that
|
||||
maintainer neither contributed to nor forwarded the patch.
|
||||
|
||||
Acked-by: is not as formal as Signed-off-by:. It is a record that the acker
|
||||
has at least reviewed the patch and has indicated acceptance. Hence patch
|
||||
mergers will sometimes manually convert an acker's "yep, looks good to me"
|
||||
into an Acked-by:.
|
||||
|
||||
Acked-by: does not necessarily indicate acknowledgement of the entire patch.
|
||||
For example, if a patch affects multiple subsystems and has an Acked-by: from
|
||||
one subsystem maintainer then this usually indicates acknowledgement of just
|
||||
the part which affects that maintainer's code. Judgement should be used here.
|
||||
When in doubt people should refer to the original discussion in the mailing
|
||||
list archives.
|
||||
|
||||
|
||||
14) The canonical patch format
|
||||
|
||||
The canonical patch subject line is:
|
||||
|
||||
Subject: [PATCH 001/123] subsystem: summary phrase
|
||||
|
||||
The canonical patch message body contains the following:
|
||||
|
||||
- A "from" line specifying the patch author.
|
||||
|
||||
- An empty line.
|
||||
|
||||
- The body of the explanation, which will be copied to the
|
||||
permanent changelog to describe this patch.
|
||||
|
||||
- The "Signed-off-by:" lines, described above, which will
|
||||
also go in the changelog.
|
||||
|
||||
- A marker line containing simply "---".
|
||||
|
||||
- Any additional comments not suitable for the changelog.
|
||||
|
||||
- The actual patch (diff output).
|
||||
|
||||
The Subject line format makes it very easy to sort the emails
|
||||
alphabetically by subject line - pretty much any email reader will
|
||||
support that - since because the sequence number is zero-padded,
|
||||
the numerical and alphabetic sort is the same.
|
||||
|
||||
The "subsystem" in the email's Subject should identify which
|
||||
area or subsystem of the kernel is being patched.
|
||||
|
||||
The "summary phrase" in the email's Subject should concisely
|
||||
describe the patch which that email contains. The "summary
|
||||
phrase" should not be a filename. Do not use the same "summary
|
||||
phrase" for every patch in a whole patch series (where a "patch
|
||||
series" is an ordered sequence of multiple, related patches).
|
||||
|
||||
Bear in mind that the "summary phrase" of your email becomes
|
||||
a globally-unique identifier for that patch. It propagates
|
||||
all the way into the git changelog. The "summary phrase" may
|
||||
later be used in developer discussions which refer to the patch.
|
||||
People will want to google for the "summary phrase" to read
|
||||
discussion regarding that patch.
|
||||
|
||||
A couple of example Subjects:
|
||||
|
||||
Subject: [patch 2/5] ext2: improve scalability of bitmap searching
|
||||
Subject: [PATCHv2 001/207] x86: fix eflags tracking
|
||||
|
||||
The "from" line must be the very first line in the message body,
|
||||
and has the form:
|
||||
|
||||
From: Original Author <author@example.com>
|
||||
|
||||
The "from" line specifies who will be credited as the author of the
|
||||
patch in the permanent changelog. If the "from" line is missing,
|
||||
then the "From:" line from the email header will be used to determine
|
||||
the patch author in the changelog.
|
||||
|
||||
The explanation body will be committed to the permanent source
|
||||
changelog, so should make sense to a competent reader who has long
|
||||
since forgotten the immediate details of the discussion that might
|
||||
have led to this patch.
|
||||
|
||||
The "---" marker line serves the essential purpose of marking for patch
|
||||
handling tools where the changelog message ends.
|
||||
|
||||
One good use for the additional comments after the "---" marker is for
|
||||
a diffstat, to show what files have changed, and the number of inserted
|
||||
and deleted lines per file. A diffstat is especially useful on bigger
|
||||
patches. Other comments relevant only to the moment or the maintainer,
|
||||
not suitable for the permanent changelog, should also go here.
|
||||
Use diffstat options "-p 1 -w 70" so that filenames are listed from the
|
||||
top of the kernel source tree and don't use too much horizontal space
|
||||
(easily fit in 80 columns, maybe with some indentation).
|
||||
|
||||
See more details on the proper patch format in the following
|
||||
references.
|
||||
|
||||
|
||||
|
||||
|
||||
-----------------------------------
|
||||
SECTION 2 - HINTS, TIPS, AND TRICKS
|
||||
-----------------------------------
|
||||
|
||||
This section lists many of the common "rules" associated with code
|
||||
submitted to the kernel. There are always exceptions... but you must
|
||||
have a really good reason for doing so. You could probably call this
|
||||
section Linus Computer Science 101.
|
||||
|
||||
|
||||
|
||||
1) Read Documentation/CodingStyle
|
||||
|
||||
Nuff said. If your code deviates too much from this, it is likely
|
||||
to be rejected without further review, and without comment.
|
||||
|
||||
One significant exception is when moving code from one file to
|
||||
another -- in this case you should not modify the moved code at all in
|
||||
the same patch which moves it. This clearly delineates the act of
|
||||
moving the code and your changes. This greatly aids review of the
|
||||
actual differences and allows tools to better track the history of
|
||||
the code itself.
|
||||
|
||||
Check your patches with the patch style checker prior to submission
|
||||
(scripts/checkpatch.pl). The style checker should be viewed as
|
||||
a guide not as the final word. If your code looks better with
|
||||
a violation then its probably best left alone.
|
||||
|
||||
The checker reports at three levels:
|
||||
- ERROR: things that are very likely to be wrong
|
||||
- WARNING: things requiring careful review
|
||||
- CHECK: things requiring thought
|
||||
|
||||
You should be able to justify all violations that remain in your
|
||||
patch.
|
||||
|
||||
|
||||
|
||||
2) #ifdefs are ugly
|
||||
|
||||
Code cluttered with ifdefs is difficult to read and maintain. Don't do
|
||||
it. Instead, put your ifdefs in a header, and conditionally define
|
||||
'static inline' functions, or macros, which are used in the code.
|
||||
Let the compiler optimize away the "no-op" case.
|
||||
|
||||
Simple example, of poor code:
|
||||
|
||||
dev = alloc_etherdev (sizeof(struct funky_private));
|
||||
if (!dev)
|
||||
return -ENODEV;
|
||||
#ifdef CONFIG_NET_FUNKINESS
|
||||
init_funky_net(dev);
|
||||
#endif
|
||||
|
||||
Cleaned-up example:
|
||||
|
||||
(in header)
|
||||
#ifndef CONFIG_NET_FUNKINESS
|
||||
static inline void init_funky_net (struct net_device *d) {}
|
||||
#endif
|
||||
|
||||
(in the code itself)
|
||||
dev = alloc_etherdev (sizeof(struct funky_private));
|
||||
if (!dev)
|
||||
return -ENODEV;
|
||||
init_funky_net(dev);
|
||||
|
||||
|
||||
|
||||
3) 'static inline' is better than a macro
|
||||
|
||||
Static inline functions are greatly preferred over macros.
|
||||
They provide type safety, have no length limitations, no formatting
|
||||
limitations, and under gcc they are as cheap as macros.
|
||||
|
||||
Macros should only be used for cases where a static inline is clearly
|
||||
suboptimal [there a few, isolated cases of this in fast paths],
|
||||
or where it is impossible to use a static inline function [such as
|
||||
string-izing].
|
||||
|
||||
'static inline' is preferred over 'static __inline__', 'extern inline',
|
||||
and 'extern __inline__'.
|
||||
|
||||
|
||||
|
||||
4) Don't over-design.
|
||||
|
||||
Don't try to anticipate nebulous future cases which may or may not
|
||||
be useful: "Make it as simple as you can, and no simpler."
|
||||
|
||||
|
||||
|
||||
----------------------
|
||||
SECTION 3 - REFERENCES
|
||||
----------------------
|
||||
|
||||
Andrew Morton, "The perfect patch" (tpp).
|
||||
<http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt>
|
||||
|
||||
Jeff Garzik, "Linux kernel patch submission format".
|
||||
<http://linux.yyz.us/patch-format.html>
|
||||
|
||||
Greg Kroah-Hartman, "How to piss off a kernel subsystem maintainer".
|
||||
<http://www.kroah.com/log/2005/03/31/>
|
||||
<http://www.kroah.com/log/2005/07/08/>
|
||||
<http://www.kroah.com/log/2005/10/19/>
|
||||
<http://www.kroah.com/log/2006/01/11/>
|
||||
|
||||
NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people!
|
||||
<http://marc.theaimsgroup.com/?l=linux-kernel&m=112112749912944&w=2>
|
||||
|
||||
Kernel Documentation/CodingStyle:
|
||||
<http://users.sosdg.org/~qiyong/lxr/source/Documentation/CodingStyle>
|
||||
|
||||
Linus Torvalds's mail on the canonical patch format:
|
||||
<http://lkml.org/lkml/2005/4/7/183>
|
||||
--
|
||||
1012
config/release/3rdparty/syslinux/doc/comboot.txt
vendored
1012
config/release/3rdparty/syslinux/doc/comboot.txt
vendored
File diff suppressed because it is too large
Load Diff
29
config/release/3rdparty/syslinux/doc/distrib.txt
vendored
29
config/release/3rdparty/syslinux/doc/distrib.txt
vendored
@@ -1,29 +0,0 @@
|
||||
For creators of Linux distributions:
|
||||
|
||||
Syslinux is a notoriously hard program to debug, since it runs outside
|
||||
of any operating system, and has a tendency to expose BIOS and
|
||||
hardware bugs on various systems. Therefore, I would appreciate if
|
||||
you would resist the temptation of recompiling the Syslinux bootloader
|
||||
itself (ldlinux.asm) if at all possible. If you do that, I will have
|
||||
to refer any bug reports I receive back to the respective distributor.
|
||||
|
||||
However, I have no such concerns about recompiling the installer
|
||||
programs, and in fact, with both libc 5 and libc 6 in common use in
|
||||
the Linux world today I understand if you wish to relink the
|
||||
Linux-based installer against your system version of libc. Therefore
|
||||
a special makefile targets "make installer" has been included with the
|
||||
Syslinux distribution, starting with version 1.42.
|
||||
|
||||
To rebuild the installer programs *only*, starting from a freshly
|
||||
untarred distribution copy of Syslinux, do:
|
||||
|
||||
make clean
|
||||
make installer
|
||||
|
||||
If you want to remove all intermediate files, including the ones
|
||||
obtained from assembling ldlinux.asm and which are included in the
|
||||
distribution, do "make spotless".
|
||||
|
||||
I appreciate your assistance in this matter.
|
||||
|
||||
H. Peter Anvin
|
||||
134
config/release/3rdparty/syslinux/doc/extlinux.txt
vendored
134
config/release/3rdparty/syslinux/doc/extlinux.txt
vendored
@@ -1,134 +0,0 @@
|
||||
EXTLINUX is a new Syslinux derivative, which boots from a Linux
|
||||
ext2/ext3 filesystem.
|
||||
|
||||
It works the same way as SYSLINUX (see doc/syslinux.txt), with a few
|
||||
slight modifications.
|
||||
|
||||
1. The installer is run on a *mounted* filesystem. Run the extlinux
|
||||
installer on the directory in which you want extlinux installed:
|
||||
|
||||
extlinux --install /boot
|
||||
|
||||
Specify --install (-i) to install for the first time, or
|
||||
--update (-U) to upgrade a previous installation.
|
||||
|
||||
NOTE: this doesn't have to be the root directory of a filesystem.
|
||||
If /boot is a filesystem, you can do:
|
||||
|
||||
mkdir -p /boot/extlinux
|
||||
extlinux --install /boot/extlinux
|
||||
|
||||
... to create a subdirectory and install extlinux in it.
|
||||
/boot/extlinux is the recommended location for extlinux.
|
||||
|
||||
|
||||
2. The configuration file is called "extlinux.conf", and is expected
|
||||
to be found in the same directory as extlinux is installed in.
|
||||
Since 4.00 "syslinux.cfg" is also tried if "extlinux.conf" is not
|
||||
found.
|
||||
|
||||
|
||||
3. Pathnames can be absolute or relative; if absolute (with a leading
|
||||
slash), they are relative to the root of the filesystem on which
|
||||
extlinux is installed (/boot in the example above), if relative,
|
||||
they are relative to the extlinux directory.
|
||||
|
||||
extlinux supports subdirectories, but the total path length is
|
||||
limited to 511 characters.
|
||||
|
||||
|
||||
4. EXTLINUX now supports symbolic links. However, extremely long
|
||||
symbolic links might hit the pathname limit. Also, please note
|
||||
that absolute symbolic links are interpreted from the root *of the
|
||||
filesystem*, which might be different from how the running system
|
||||
would interpret it (e.g. in the case of a separate /boot
|
||||
partition.) Therefore, use relative symbolic links if at all
|
||||
possible.
|
||||
|
||||
|
||||
5. EXTLINUX now has "boot-once" support. The boot-once information is
|
||||
stored in an on-disk datastructure, part of extlinux.sys, called
|
||||
the "Auxillary Data Vector". The Auxilliary Data Vector is also
|
||||
available to COMBOOT/COM32 modules that want to store small amounts
|
||||
of information.
|
||||
|
||||
To set the boot-once information, do:
|
||||
|
||||
extlinux --once 'command' /boot/extlinux
|
||||
|
||||
where 'command' is any command you could enter at the Syslinux
|
||||
command line. It will be executed on the next boot and then
|
||||
erased.
|
||||
|
||||
To clear the boot-once information, do:
|
||||
|
||||
extlinux --clear-once /boot/extlinux
|
||||
|
||||
If EXTLINUX is used on a RAID-1, this is recommended, since under
|
||||
certain circumstances a RAID-1 rebuild can "resurrect" the
|
||||
boot-once information otherwise.
|
||||
|
||||
To clear the entire Auxillary Data Vector, do:
|
||||
|
||||
extlinux --reset-adv /boot/extlinux
|
||||
|
||||
This will erase all data stored in the ADV, including boot-once.
|
||||
|
||||
The --once, --clear-once, and --reset-adv commands can be combined
|
||||
with --install or --update, if desired. The ADV is preserved
|
||||
across updates, unless --reset-adv is specified.
|
||||
|
||||
|
||||
Note that EXTLINUX installs in the filesystem partition like a
|
||||
well-behaved bootloader :) Thus, it needs a master boot record in the
|
||||
partition table; the mbr.bin shipped with Syslinux should work well.
|
||||
To install it just do:
|
||||
|
||||
cat mbr.bin > /dev/XXX
|
||||
|
||||
... where /dev/XXX is the appropriate master device, e.g. /dev/hda,
|
||||
and make sure the correct partition in set active.
|
||||
|
||||
|
||||
If you have multiple disks in a software RAID configuration, the
|
||||
preferred way to boot is:
|
||||
|
||||
- Create a separate RAID-1 partition for /boot. Note that the Linux
|
||||
RAID-1 driver can span as many disks as you wish.
|
||||
|
||||
- Install the MBR on *each disk*, and mark the RAID-1 partition
|
||||
active.
|
||||
|
||||
- Run "extlinux --raid --install /boot" to install extlinux. This
|
||||
will install it on all the drives in the RAID-1 set, which means
|
||||
you can boot any combination of drives in any order.
|
||||
|
||||
|
||||
|
||||
It is not required to re-run the extlinux installer after installing
|
||||
new kernels. If you are using ext3 journalling, however, it might be
|
||||
desirable to do so, since running the extlinux installer will flush
|
||||
the log. Otherwise a dirty shutdown could cause some of the new
|
||||
kernel image to still be in the log. This is a general problem for
|
||||
boot loaders on journalling filesystems; it is not specific to
|
||||
extlinux. The "sync" command does not flush the log on the ext3
|
||||
filesystem.
|
||||
|
||||
|
||||
The Syslinux Project boot loaders support chain loading other
|
||||
operating systems via a separate module, chain.c32 (located in
|
||||
com32/modules/chain.c32). To use it, specify a LABEL in the
|
||||
configuration file with KERNEL chain.c32 and APPEND [hd|fd]<number>
|
||||
[<partition>]
|
||||
|
||||
For example:
|
||||
|
||||
# Windows CE/ME/NT, a very dense operating system.
|
||||
# Second partition (2) on the first hard disk (hd0);
|
||||
# Linux would *typically* call this /dev/hda2 or /dev/sda2.
|
||||
LABEL cement
|
||||
KERNEL chain.c32
|
||||
APPEND hd0 2
|
||||
|
||||
See also doc/menu.txt.
|
||||
|
||||
69
config/release/3rdparty/syslinux/doc/gpt.txt
vendored
69
config/release/3rdparty/syslinux/doc/gpt.txt
vendored
@@ -1,69 +0,0 @@
|
||||
GPT boot protocol
|
||||
|
||||
There are two ways to boot a GPT-formatted disk on a BIOS system.
|
||||
Hybrid booting, and the new GPT-only booting protocol originally
|
||||
proposed by the author, and later adopted by the T13 committee in
|
||||
slightly modified form.
|
||||
|
||||
|
||||
*** Hybrid booting ***
|
||||
|
||||
Hybrid booting uses a standard MBR, and has bootable ("active")
|
||||
partitions present, as partitions, in the GPT PMBR sector. This means
|
||||
the PMBR, instead of containing only one "protective" partition (type
|
||||
EE), may contain up to three partitions: a protective partition (EE)
|
||||
*before* the active partition, the active partition, and a protective
|
||||
partition (EE) *after* the active partition. The active partition is
|
||||
limited to the first 2^32 sectors (2 TB) of the disk.
|
||||
|
||||
All partitions, including the active partition, should have GPT
|
||||
partition entries. Thus, changing which partition is active does NOT
|
||||
change the GPT partition table.
|
||||
|
||||
This is the only known way to boot Microsoft operating systems from a
|
||||
GPT disk with BIOS firmware.
|
||||
|
||||
|
||||
*** New protocol ***
|
||||
|
||||
This defines the T13-approved protocol for GPT partitions with BIOS
|
||||
firmware. It maintains backwards compatibility to the extent
|
||||
possible. It is implemented by the file mbr/gptmbr.bin.
|
||||
|
||||
The (P)MBR format is the normal PMBR specified in the UEFI
|
||||
documentation, with the first 440 bytes used for the boot code. The
|
||||
partition to be booted is marked by setting bit 2 in the GPT Partition
|
||||
Entry Attributes field (offset 48); this bit is reserved by the UEFI
|
||||
Forum for "Legacy BIOS Bootable".
|
||||
|
||||
|
||||
-> The handover protocol
|
||||
|
||||
The PMBR boot code loads the first sector of the bootable partition,
|
||||
and passes in DL=<disk number>, ES:DI=<pointer to $PnP>, sets EAX to
|
||||
0x54504721 ("!GPT") and points DS:SI to a structure of the following
|
||||
form:
|
||||
|
||||
Offset Size Contents
|
||||
---------------------------------------------------------
|
||||
0 1 0x80 (this is a bootable partition)
|
||||
1 3 CHS of partition (using INT 13h geometry)
|
||||
4 1 0xED (partition type: synthetic)
|
||||
5 3 CHS of partition end
|
||||
8 4 Partition start LBA
|
||||
12 4 Partition end LBA
|
||||
16 4 Length of the GPT entry
|
||||
20 varies GPT partition entry
|
||||
|
||||
The CHS information is optional; gptmbr.bin currently does *NOT*
|
||||
calculate them, and just leaves them as zero.
|
||||
|
||||
Bytes 0-15 matches the standard MBR handover (DS:SI points to the
|
||||
partition entry), except that the information is provided
|
||||
synthetically. The MBR-compatible fields are directly usable if they
|
||||
are < 2 TB, otherwise these fields should contain 0xFFFFFFFF and the
|
||||
OS will need to understand the GPT partition entry which follows the
|
||||
MBR one. The "!GPT" magic number in EAX and the 0xED partition type
|
||||
also informs the OS that the GPT partition information is present.
|
||||
|
||||
Syslinux 4.00 and later fully implements this protocol.
|
||||
102
config/release/3rdparty/syslinux/doc/isolinux.txt
vendored
102
config/release/3rdparty/syslinux/doc/isolinux.txt
vendored
@@ -1,102 +0,0 @@
|
||||
ISOLINUX
|
||||
|
||||
A bootloader for Linux using ISO 9660/El Torito CD-ROMs
|
||||
|
||||
Copyright 1994-2008 H. Peter Anvin - All Rights Reserved
|
||||
|
||||
This program is provided under the terms of the GNU General Public
|
||||
License, version 2 or, at your option, any later version. There is no
|
||||
warranty, neither expressed nor implied, to the function of this
|
||||
program. Please see the included file COPYING for details.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
ISOLINUX is a boot loader for Linux/i386 that operates off ISO 9660/El
|
||||
Torito CD-ROMs in "no emulation" mode. This avoids the need to create
|
||||
an "emulation disk image" with limited space (for "floppy emulation")
|
||||
or compatibility problems (for "hard disk emulation".)
|
||||
|
||||
This documentation isn't here yet, but here is enough that you should
|
||||
be able to test it out:
|
||||
|
||||
Make sure you have a recent enough version of mkisofs. I recommend
|
||||
mkisofs 1.13 (distributed with cdrecord 1.9), but 1.12 might work as
|
||||
well (not tested.)
|
||||
|
||||
To create an image, create a directory called "isolinux" (or, if you
|
||||
prefer, "boot/isolinux") underneath the root directory of your ISO
|
||||
image master file tree. Copy isolinux.bin, a config file called
|
||||
"isolinux.cfg" (see syslinux.txt for details on the configuration
|
||||
file), and all necessary files (kernels, initrd, display files, etc.)
|
||||
into this directory, then use the following command to create your ISO
|
||||
image (add additional options as appropriate, such as -J or -R):
|
||||
|
||||
mkisofs -o <isoimage> \
|
||||
-b isolinux/isolinux.bin -c isolinux/boot.cat \
|
||||
-no-emul-boot -boot-load-size 4 -boot-info-table \
|
||||
<root-of-iso-tree>
|
||||
|
||||
(If you named the directory boot/isolinux that should of course be
|
||||
-b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat.)
|
||||
|
||||
ISOLINUX resolves pathnames the following way:
|
||||
|
||||
- A pathname consists of names separated by slashes, Unix-style.
|
||||
- A leading / means it searches from the root directory; otherwise the
|
||||
search is from the isolinux directory (think of this as the "current
|
||||
directory".)
|
||||
- . and .. in pathname searches are not supported.
|
||||
- The maximum length of any pathname is 255 characters.
|
||||
|
||||
Note that ISOLINUX only uses the "plain" ISO 9660 filenames, i.e. it
|
||||
does not support Rock Ridge or Joliet filenames. It can still be used
|
||||
on a disk which uses Rock Ridge and/or Joliet extensions, of course.
|
||||
Under Linux, you can verify the plain filenames by mounting with the
|
||||
"-o norock,nojoliet" option to the mount command. Note, however, that
|
||||
ISOLINUX does support "long" (level 2) ISO 9660 plain filenames, so if
|
||||
compatibility with short-names-only operating systems like MS-DOS is
|
||||
not an issue, you can use the "-l" or "-iso-level 2" option to mkisofs
|
||||
to generate long (up to 31 characters) plain filenames.
|
||||
|
||||
ISOLINUX does not support discontiguous files, interleaved mode, or
|
||||
logical block and sector sizes other than 2048. This should normally
|
||||
not be a problem.
|
||||
|
||||
ISOLINUX is by default built in two versions, one version with extra
|
||||
debugging messages enabled. If you are having problems with ISOLINUX,
|
||||
I would greatly appreciate if you could try out the debugging version
|
||||
(isolinux-debug.bin) and let me know what it reports. The debugging
|
||||
version does not include hybrid mode support (see below.)
|
||||
|
||||
|
||||
++++ NOTE ON THE CONFIG FILE DIRECTORY ++++
|
||||
|
||||
ISOLINUX will search for the config file directory in the order
|
||||
/boot/isolinux, /isolinux, /. The first directory that exists is
|
||||
used, even if it contains no files. Therefore, please make sure that
|
||||
these directories don't exist if you don't want ISOLINUX to use them.
|
||||
|
||||
|
||||
++++ HYBRID CD-ROM/HARD DISK MODE ++++
|
||||
|
||||
Starting in version 3.72, ISOLINUX supports a "hybrid mode" which can
|
||||
be booted from either CD-ROM or from a device which BIOS considers a
|
||||
hard disk or ZIP disk, e.g. a USB key or similar.
|
||||
|
||||
To enable this mode, the .iso image should be postprocessed with the
|
||||
"isohybrid" script from the utils directory:
|
||||
|
||||
isohybrid filename.iso
|
||||
|
||||
This script creates the necessary additional information to be able to
|
||||
boot in hybrid mode. It also pads out the image to an even multiple
|
||||
of 1 MB.
|
||||
|
||||
This image can then be copied using any raw disk writing tool (on Unix
|
||||
systems, typically "dd" or "cat") to a USB disk, or written to a
|
||||
CD-ROM using standard CD burning tools.
|
||||
|
||||
The ISO 9660 filesystem is encapsulated in a partition (which starts
|
||||
at offset zero, which may confuse some systems.) This makes it
|
||||
possible for the operating system, once booted, to use the remainder
|
||||
of the device for persistent storage by creating a second partition.
|
||||
@@ -1,85 +0,0 @@
|
||||
This is the documentation for the keytab-lilo.pl program. It was
|
||||
taken verbatim from the LILO-20 README file; only this header was
|
||||
added.
|
||||
|
||||
LILO program code, documentation and auxiliary programs are
|
||||
Copyright 1992-1997 Werner Almesberger.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms of parts of or the
|
||||
whole original or derived work are permitted provided that the
|
||||
original work is properly attributed to the author. The name of the
|
||||
author may not be used to endorse or promote products derived from
|
||||
this software without specific prior written permission. This work
|
||||
is provided "as is" and without any express or implied warranties.
|
||||
|
||||
To use a LILO keyboard table with Syslinux, specify the KBDMAP command
|
||||
in syslinux.cfg, for example:
|
||||
|
||||
kbdmap de.ktl
|
||||
|
||||
============================================================================
|
||||
|
||||
Keyboard translation
|
||||
--------------------
|
||||
|
||||
The PC keyboard emits so-called scan codes, which are basically key
|
||||
numbers. The BIOS then translates those scan codes to the character codes
|
||||
of the characters printed on the key-caps. By default, the BIOS normally
|
||||
assumes that the keyboard has a US layout. Once an operating system is
|
||||
loaded, this operating system can use a different mapping.
|
||||
|
||||
At boot time, LILO only has access to the basic services provided by the
|
||||
BIOS and therefore receives the character codes for an US keyboard. It
|
||||
provides a simple mechanism to re-map the character codes to what is
|
||||
appropriate for the actual layout.*
|
||||
|
||||
* The current mechanism isn't perfect, because it sits on top of the
|
||||
scan code to character code translation performed by the BIOS. This
|
||||
means that key combinations that don't produce any useful character on
|
||||
the US keyboard will be ignored by LILO. The advantage of this approach
|
||||
is its simplicity.
|
||||
|
||||
|
||||
Compiling keyboard translation tables
|
||||
- - - - - - - - - - - - - - - - - - -
|
||||
|
||||
LILO obtains layout information from the keyboard translation tables Linux
|
||||
uses for the text console. They are usually stored in
|
||||
/usr/lib/kbd/keytables. LILO comes with a program keytab-lilo.pl that reads
|
||||
those tables and generates a table suitable for use by the map installer.
|
||||
keytab-lilo.pl invokes the program loadkeys to print the tables in a format
|
||||
that is easy to parse.*
|
||||
|
||||
* On some systems, only root can execute loadkeys. It is then necessary
|
||||
to run keytab-lilo.pl as root too.
|
||||
|
||||
keytab-lilo.pl is used as follows:
|
||||
|
||||
keytab-lilo.pl [ -p <old_code>=<new_code> ] ...
|
||||
[<path>]<default_layout>[.<extension>] ]
|
||||
[<path>]<kbd_layout>[.<extension>] ]
|
||||
|
||||
-p <old_code>=<new_code>
|
||||
Specifies corrections ("patches") to the mapping obtained from the
|
||||
translation table files. E.g. if pressing the upper case "A" should
|
||||
yield an at sign, -p 65=64 would be used. The -p option can be
|
||||
repeated any number of times. The codes can also be given as
|
||||
hexadecimal or as octal numbers if they are prefixed with 0x or 0,
|
||||
respectively.
|
||||
<path> The directory in which the file resides. The default path is
|
||||
/usr/lib/kbd/keytables.
|
||||
<extension> Usually the trailing .map, which is automatically added if
|
||||
the file name doesn't contain dots.
|
||||
<default_layout> Is the layout which specifies the translation by the
|
||||
BIOS. If none is specified, us is assumed.
|
||||
<kbd_layout> Is the actual layout of the keyboard.
|
||||
|
||||
keytab-lilo.pl writes the resulting translation table as a binary string to
|
||||
standard output. Such tables can be stored anywhere with any name, but the
|
||||
suggested naming convention is /boot/<kbd>.ktl ("Keyboard Table for Lilo"),
|
||||
where <kbd> is the name of the keyboard layout.
|
||||
|
||||
Example:
|
||||
|
||||
keytab-lilo.pl de >/boot/de.ktl
|
||||
26
config/release/3rdparty/syslinux/doc/mboot.txt
vendored
26
config/release/3rdparty/syslinux/doc/mboot.txt
vendored
@@ -1,26 +0,0 @@
|
||||
|
||||
mboot.c32
|
||||
---------
|
||||
|
||||
mboot.c32 is a 32-bit comboot module that allows Syslinux and its
|
||||
variants to load and boot kernels that use the Multiboot standard
|
||||
(e.g. the Xen virtual machine monitor, and the Fiasco and GNU Mach
|
||||
microkernels).
|
||||
|
||||
To load a multiboot kernel and modules in Syslinux, put mboot.c32 (from
|
||||
com32/modules) in the boot directory, and load it as the "kernel" in the
|
||||
configuration file. The command-line to pass to mboot.c32 is the kernel
|
||||
command-line, followed by all the module command lines, separated with
|
||||
'---'. For example, to load a Xen VMM, xenlinux and an initrd:
|
||||
|
||||
DEFAULT mboot.c32 xen.gz dom0_mem=15000 nosmp noacpi --- linux.gz console=tty0 root=/dev/hda1 --- initrd.img
|
||||
|
||||
or, as a choice in a menu:
|
||||
|
||||
LABEL Xen
|
||||
KERNEL mboot.c32
|
||||
APPEND xen.gz dom0_mem=15000 nosmp noacpi --- linux.gz console=tty0 root=/dev/hda1 --- initrd.img
|
||||
|
||||
mboot.c32 requires version 2.12 or later of Syslinux.
|
||||
|
||||
Tim Deegan, May 2005
|
||||
298
config/release/3rdparty/syslinux/doc/memdisk.txt
vendored
298
config/release/3rdparty/syslinux/doc/memdisk.txt
vendored
@@ -1,298 +0,0 @@
|
||||
[This documentation is rather crufty at the moment.]
|
||||
|
||||
MEMDISK is meant to allow booting legacy operating systems via PXE,
|
||||
and as a workaround for BIOSes where ISOLINUX image support doesn't
|
||||
work.
|
||||
|
||||
MEMDISK simulates a disk by claiming a chunk of high memory for the
|
||||
disk and a (very small - 2K typical) chunk of low (DOS) memory for the
|
||||
driver itself, then hooking the INT 13h (disk driver) and INT 15h
|
||||
(memory query) BIOS interrupts.
|
||||
|
||||
MEMDISK allows for an OS to detect the MEMDISK instance. (See the
|
||||
"Additional technical information" section below.)
|
||||
|
||||
To use it, type on the Syslinux command line:
|
||||
|
||||
memdisk initrd=diskimg.img
|
||||
|
||||
... where diskimg.img is the disk image you want to boot from.
|
||||
|
||||
[Obviously, the memdisk binary as well as your disk image file need to
|
||||
be present in the boot image directory.]
|
||||
|
||||
... or add to your syslinux.cfg/pxelinux.cfg/isolinux.cfg something like:
|
||||
|
||||
label dos
|
||||
kernel memdisk
|
||||
append initrd=dosboot.img
|
||||
|
||||
Note the following:
|
||||
|
||||
a) The disk image can be uncompressed or compressed with gzip or zip.
|
||||
|
||||
b) If the disk image is less than 4,194,304 bytes (4096K, 4 MB) it is
|
||||
assumed to be a floppy image and MEMDISK will try to guess its
|
||||
geometry based on the size of the file. MEMDISK recognizes all the
|
||||
standard floppy sizes as well as common extended formats:
|
||||
|
||||
163,840 bytes (160K) c=40 h=1 s=8 5.25" SSSD
|
||||
184,320 bytes (180K) c=40 h=1 s=9 5.25" SSSD
|
||||
327,680 bytes (320K) c=40 h=2 s=8 5.25" DSDD
|
||||
368,640 bytes (360K) c=40 h=2 s=9 5.25" DSDD
|
||||
655,360 bytes (640K) c=80 h=2 s=8 3.5" DSDD
|
||||
737,280 bytes (720K) c=80 h=2 s=9 3.5" DSDD
|
||||
1,222,800 bytes (1200K) c=80 h=2 s=15 5.25" DSHD
|
||||
1,474,560 bytes (1440K) c=80 h=2 s=18 3.5" DSHD
|
||||
1,638,400 bytes (1600K) c=80 h=2 s=20 3.5" DSHD (extended)
|
||||
1,720,320 bytes (1680K) c=80 h=2 s=21 3.5" DSHD (extended)
|
||||
1,763,328 bytes (1722K) c=82 h=2 s=21 3.5" DSHD (extended)
|
||||
1,784,832 bytes (1743K) c=83 h=2 s=21 3.5" DSHD (extended)
|
||||
1,802,240 bytes (1760K) c=80 h=2 s=22 3.5" DSHD (extended)
|
||||
1,884,160 bytes (1840K) c=80 h=2 s=23 3.5" DSHD (extended)
|
||||
1,966,080 bytes (1920K) c=80 h=2 s=24 3.5" DSHD (extended)
|
||||
2,949,120 bytes (2880K) c=80 h=2 s=36 3.5" DSED
|
||||
3,194,880 bytes (3120K) c=80 h=2 s=39 3.5" DSED (extended)
|
||||
3,276,800 bytes (3200K) c=80 h=2 s=40 3.5" DSED (extended)
|
||||
3,604,480 bytes (3520K) c=80 h=2 s=44 3.5" DSED (extended)
|
||||
3,932,160 bytes (3840K) c=80 h=2 s=48 3.5" DSED (extended)
|
||||
|
||||
A small perl script is included in the MEMDISK directory which can
|
||||
determine the geometry that MEMDISK would select for other sizes;
|
||||
in general MEMDISK will correctly detect most physical extended
|
||||
formats used, with 80 cylinders or slightly more.
|
||||
|
||||
If the image is 4 MB or larger, it is assumed to be a hard disk
|
||||
image, and should typically have an MBR and a partition table. It
|
||||
may optionally have a DOSEMU geometry header; in which case the
|
||||
header is used to determine the C/H/S geometry of the disk.
|
||||
Otherwise, the geometry is determined by examining the partition
|
||||
table, so the entire image should be partitioned for proper
|
||||
operation (it may be divided between multiple partitions, however.)
|
||||
|
||||
You can also specify the geometry manually with the following command
|
||||
line options:
|
||||
|
||||
c=# Specify number of cylinders (max 1024[*])
|
||||
h=# Specify number of heads (max 256[*])
|
||||
s=# Specify number of sectors (max 63)
|
||||
floppy[=#] The image is a floppy image[**]
|
||||
harddisk[=#] The image is a hard disk image[**]
|
||||
iso The image is an El Torito ISO9660 image (drive 0xE0)
|
||||
|
||||
# represents a decimal number.
|
||||
|
||||
[*] MS-DOS only allows max 255 heads, and only allows 255 cylinders
|
||||
on floppy disks.
|
||||
|
||||
[**] Normally MEMDISK emulates the first floppy or hard disk. This
|
||||
can be overridden by specifying an index, e.g. floppy=1 will
|
||||
simulate fd1 (B:). This may not work on all operating systems
|
||||
or BIOSes.
|
||||
|
||||
c) The disk is normally writable (although, of course, there is
|
||||
nothing backing it up, so it only lasts until reset.) If you want,
|
||||
you can mimic a write-protected disk by specifying the command line
|
||||
option:
|
||||
|
||||
ro Disk is readonly
|
||||
|
||||
d) MEMDISK normally uses the BIOS "INT 15h mover" API to access high
|
||||
memory. This is well-behaved with extended memory managers which load
|
||||
later. Unfortunately it appears that the "DOS boot disk" from
|
||||
WinME/XP *deliberately* crash the system when this API is invoked.
|
||||
The following command-line options tells MEMDISK to enter protected
|
||||
mode directly, whenever possible:
|
||||
|
||||
raw Use raw access to protected mode memory.
|
||||
|
||||
bigraw Use raw access to protected mode memory, and leave the
|
||||
CPU in "big real" mode afterwards.
|
||||
|
||||
int Use plain INT 15h access to protected memory. This assumes
|
||||
that anything which hooks INT 15h knows what it is doing.
|
||||
|
||||
safeint Use INT 15h access to protected memory, but invoke
|
||||
INT 15h the way it was *before* MEMDISK was loaded.
|
||||
This is the default since version 3.73.
|
||||
|
||||
e) MEMDISK by default supports EDD/EBIOS on hard disks, but not on
|
||||
floppy disks. This can be controlled with the options:
|
||||
|
||||
edd Enable EDD/EBIOS
|
||||
noedd Disable EDD/EBIOS
|
||||
|
||||
f) The following option can be used to pause to view the messages:
|
||||
|
||||
pause Wait for a keypress right before booting
|
||||
|
||||
g) The following option can be used to set the real-mode stack size.
|
||||
The default is 512 bytes, but if there is a failure it might be
|
||||
interesting to set it to something larger:
|
||||
|
||||
stack=size Set the stack to "size" bytes
|
||||
|
||||
h) Some systems without a floppy drive have been known to have
|
||||
problems with floppy images. To avoid that those problems, first
|
||||
of all make sure you don't have a floppy drive configured on the
|
||||
BIOS screen. If there is no option to configure that, or that
|
||||
doesn't work, you can use the option:
|
||||
|
||||
nopass Hide all real drives of the same type (floppy or hard disk)
|
||||
nopassany Hide all real drives (floppy and hard disk)
|
||||
|
||||
i) The following standard Linux option will mark memory as reserved.
|
||||
Please note that the Syslinux core already loads MEMDISK and its
|
||||
initrd below this point:
|
||||
|
||||
mem=size Mark available memory above this point as Reserved.
|
||||
|
||||
|
||||
Some interesting things to note:
|
||||
|
||||
If you're using MEMDISK to boot DOS from a CD-ROM (using ISOLINUX),
|
||||
you might find the generic El Torito CD-ROM driver by Gary Tong and
|
||||
Bart Lagerweij useful. It is now included with the Syslinux
|
||||
distribution, in the dosutil directory. See the file
|
||||
dosutil/eltorito.txt for more information.
|
||||
|
||||
Similarly, if you're booting DOS over the network using PXELINUX, you
|
||||
can use the "keeppxe" option and use the generic PXE (UNDI) NDIS
|
||||
network driver, which is part of the PROBOOT.EXE distribution from
|
||||
Intel:
|
||||
|
||||
http://www.intel.com/support/network/adapter/1000/software.htm
|
||||
|
||||
|
||||
Additional technical information:
|
||||
|
||||
Starting with version 2.08, MEMDISK now supports an installation check
|
||||
API. This works as follows:
|
||||
|
||||
EAX = 454D08xxh ("ME") (08h = parameter query)
|
||||
ECX = 444Dxxxxh ("MD")
|
||||
EDX = 5349xxnnh ("IS") (nn = drive #)
|
||||
EBX = 3F4Bxxxxh ("K?")
|
||||
INT 13h
|
||||
|
||||
If drive nn is a MEMDISK, the registers will contain:
|
||||
|
||||
EAX = 4D21xxxxh ("!M")
|
||||
ECX = 4D45xxxxh ("EM")
|
||||
EDX = 4944xxxxh ("DI")
|
||||
EBX = 4B53xxxxh ("SK")
|
||||
|
||||
ES:DI -> MEMDISK info structures
|
||||
|
||||
The low parts of EAX/ECX/EDX/EBX have the normal return values for INT
|
||||
13h, AH=08h, i.e. information of the disk geometry etc.
|
||||
|
||||
See Ralf Brown's interrupt list,
|
||||
http://www.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/WWW/files.html or
|
||||
http://www.ctyme.com/rbrown.htm, for a detailed description.
|
||||
|
||||
The MEMDISK info structure currently contains:
|
||||
|
||||
[ES:DI] word Total size of structure (currently 30 bytes)
|
||||
[ES:DI+2] byte MEMDISK minor version
|
||||
[ES:DI+3] byte MEMDISK major version
|
||||
[ES:DI+4] dword Pointer to MEMDISK data in high memory
|
||||
[ES:DI+8] dword Size of MEMDISK data in sectors
|
||||
[ES:DI+12] 16:16 Far pointer to command line
|
||||
[ES:DI+16] 16:16 Old INT 13h pointer
|
||||
[ES:DI+20] 16:16 Old INT 15h pointer
|
||||
[ES:DI+24] word Amount of DOS memory before MEMDISK loaded
|
||||
[ES:DI+26] byte Boot loader ID
|
||||
[ES:DI+27] byte Sector size as a power of 2
|
||||
(If zero, assume 512-byte sectors)
|
||||
[ES:DI+28] word If nonzero, offset (vs ES) to installed DPT
|
||||
This pointer+16 contains the original INT 1Eh
|
||||
|
||||
Sizes of this structure:
|
||||
|
||||
3.71+ 30 bytes Added DPT pointer
|
||||
3.00-3.70 27 bytes Added boot loader ID
|
||||
pre-3.00 26 bytes
|
||||
|
||||
In addition, the following fields are available at [ES:0]:
|
||||
|
||||
[ES:0] word Offset of INT 13h routine (segment == ES)
|
||||
[ES:2] word Offset of INT 15h routine (segment == ES)
|
||||
|
||||
The program mdiskchk.c in the sample directory is an example on how
|
||||
this API can be used.
|
||||
|
||||
The following code can be used to "disable" MEMDISK. Note that it
|
||||
does not free the handler in DOS memory, and that running this from
|
||||
DOS will probably crash your machine (DOS doesn't like drives suddenly
|
||||
disappearing from underneath.) This is also not necessarily the best
|
||||
method for this.
|
||||
|
||||
mov eax, 454D0800h
|
||||
mov ecx, 444D0000h
|
||||
mov edx, 53490000h
|
||||
mov dl,drive_number
|
||||
mov ebx, 3F4B0000h
|
||||
int 13h
|
||||
|
||||
shr eax, 16
|
||||
cmp ax, 4D21h
|
||||
jne not_memdisk
|
||||
shr ecx, 16
|
||||
cmp cx, 4D45h
|
||||
jne not_memdisk
|
||||
shr edx, 16
|
||||
cmp dx, 4944h
|
||||
jne not_memdisk
|
||||
shr ebx, 16
|
||||
cmp bx, 4B53h
|
||||
jne not_memdisk
|
||||
|
||||
cli
|
||||
mov bx,[es:0] ; INT 13h handler offset
|
||||
mov eax,[es:di+16] ; Old INT 13h handler
|
||||
mov byte [es:bx], 0EAh ; FAR JMP
|
||||
mov [es:bx+1], eax
|
||||
|
||||
mov bx,[es:2] ; INT 15h handler offset
|
||||
mov eax,[es:di+20] ; Old INT 15h handler
|
||||
mov byte [es:bx], 0EAh ; FAR JMP
|
||||
mov [es:bx+1], eax
|
||||
sti
|
||||
|
||||
MEMDISK supports the Win9x "safe hook" structure for OS detection.
|
||||
(See "Safe Master Boot Record INT 13h Hook Routines," available at
|
||||
http://www.osronline.com/ddkx/w98ddk/storage_5l6g.htm as of
|
||||
December 7th, 2009.) An OS driver can take a look at the INTerrupt table
|
||||
and try to walk along the chain of those hooks that implement the "safe hook"
|
||||
structure. For each hook discovered, a vendor can be identified and the OS
|
||||
driver can take appropriate action. The OS driver can mark the "flags" field
|
||||
of the "safe hook" to indicate that the driver has reviewed it already. This
|
||||
prevents accidental re-detection, for example.
|
||||
|
||||
MEMDISK adds one additional extension field to the "safe hook" structure, a
|
||||
pointer to a special MEMDISK structure called the "mBFT." The mBFT is the
|
||||
"MEMDISK Boot Firmware Table" (akin to the iSCSI iBFT and the AoE aBFT). An
|
||||
OS driver looking at MEMDISK's "safe hook" should know that this field will
|
||||
be present based on the fact that MEMDISK is the vendor identifier.
|
||||
|
||||
The mBFT is little more than an ACPI table to prefix MEMDISK's traditional
|
||||
MEMDISK info structure (the "MDI"). The ACPI table's details are:
|
||||
|
||||
OEM ID. . . .: MEMDSK
|
||||
OEM Table ID : Syslinux
|
||||
|
||||
There is a 1-byte checksum field which covers the length of the mBFT all
|
||||
the way through to the end of the MEMDISK info structure.
|
||||
|
||||
There is also a physical pointer to the "safe hook" structure associated
|
||||
with the MEMDISK instance. An OS driver might use the following logic:
|
||||
|
||||
1. Walk INT 13h "safe hook" chain as far as possible, marking hooks as
|
||||
having been reviewed. For MEMDISK hooks, the driver then follows the
|
||||
pointer to the mBFT and gathers the RAM disk details from the included
|
||||
MDI.
|
||||
2. The OS driver scans low memory for valid mBFTs. MEMDISK instances that
|
||||
have been "disconnected" from the INT 13h "safe hook" chain can be thus
|
||||
discovered. Looking at their associated "safe hook" structure will
|
||||
reveal if they were indeed reviewed by the previous stage.
|
||||
585
config/release/3rdparty/syslinux/doc/menu.txt
vendored
585
config/release/3rdparty/syslinux/doc/menu.txt
vendored
@@ -1,585 +0,0 @@
|
||||
There are two menu systems included with Syslinux, the advanced menu
|
||||
system, and the simple menu system.
|
||||
|
||||
|
||||
+++ THE ADVANCED MENU SYSTEM +++
|
||||
|
||||
The advanced menu system, written by Murali Krishnan Ganapathy, is
|
||||
located in the menu/ subdirectly. It allows the user to create
|
||||
hierarchial submenus, dynamic options, checkboxes, and just about
|
||||
anything you want. It requires that the menu is compiled from a
|
||||
simple C file, see menu/simple.c and menu/complex.c for examples.
|
||||
|
||||
The advanced menu system doesn't support serial console at this time.
|
||||
|
||||
See menu/README for more information.
|
||||
|
||||
|
||||
+++ THE SIMPLE MENU SYSTEM +++
|
||||
|
||||
The simple menu system is a single module located at
|
||||
com32/modules/vesamenu.c32 (graphical) or com32/modules/menu.c32 (text
|
||||
mode only). It uses the same configuration file as the regular
|
||||
Syslinux command line, and displays all the LABEL statements.
|
||||
|
||||
To use the menu system, simply make sure [vesa]menu.c32 is in the
|
||||
appropriate location for your boot medium (the same directory as the
|
||||
configuration file for SYSLINUX, EXTLINUX and ISOLINUX, and the same
|
||||
directory as pxelinux.0 for PXELINUX), and put the following options
|
||||
in your configuration file:
|
||||
|
||||
UI menu.c32
|
||||
|
||||
|
||||
There are a few menu additions to the configuration file, all starting
|
||||
with the keywords MENU or TEXT; like the rest of the Syslinux config
|
||||
file language, it is case insensitive:
|
||||
|
||||
|
||||
MENU TITLE title
|
||||
|
||||
Give the menu a title. The title is presented at the top of
|
||||
the menu.
|
||||
|
||||
|
||||
MENU HIDDEN
|
||||
|
||||
Do not display the actual menu unless the user presses a key.
|
||||
All that is displayed is a timeout message.
|
||||
|
||||
|
||||
MENU HIDDENKEY key[,key...] command...
|
||||
|
||||
If they key used to interrupt MENU HIDDEN is <key>, then
|
||||
execute the specified command instead of displaying the menu.
|
||||
|
||||
Currently, the following key names are recognized:
|
||||
|
||||
Backspace, Tab, Enter, Esc, Space, F1..F12, Up, Down, Left,
|
||||
Right, PgUp, PgDn, Home, End, Insert, Delete
|
||||
|
||||
... in addition to all single characters plus the syntax ^X
|
||||
for Ctrl-X. Note that single characters are treated as case
|
||||
sensitive, so a different command can be bound to "A" than
|
||||
"a". One can bind the same command to multiple keys by giving
|
||||
a comma-separated list of keys:
|
||||
|
||||
menu hiddenkey A,a key_a_command
|
||||
|
||||
|
||||
MENU CLEAR
|
||||
|
||||
Clear the screen when exiting the menu, instead of leaving the
|
||||
menu displayed. For vesamenu, this means the graphical
|
||||
background is still displayed without the menu itself for as
|
||||
long as the screen remains in graphics mode.
|
||||
|
||||
|
||||
MENU SHIFTKEY
|
||||
|
||||
Exit the menu system immediately unless either the Shift or Alt
|
||||
key is pressed, or Caps Lock or Scroll Lock is set.
|
||||
|
||||
|
||||
MENU SEPARATOR
|
||||
|
||||
Insert an empty line in the menu.
|
||||
|
||||
|
||||
MENU LABEL label
|
||||
|
||||
(Only valid after a LABEL statement.)
|
||||
Changes the label displayed for a specific entry. This allows
|
||||
you to have a label that isn't suitable for the command line,
|
||||
for example:
|
||||
|
||||
# Soft Cap Linux
|
||||
LABEL softcap
|
||||
MENU LABEL Soft Cap ^Linux 9.6.36
|
||||
KERNEL softcap-9.6.36.bzi
|
||||
APPEND whatever
|
||||
|
||||
# A very dense operating system
|
||||
LABEL brick
|
||||
MENU LABEL ^Windows CE/ME/NT
|
||||
KERNEL chain.c32
|
||||
APPEND hd0 2
|
||||
|
||||
The ^ symbol in a MENU LABEL statement defines a hotkey.
|
||||
The hotkey will be highlighted in the menu and will move the
|
||||
menu cursor immediately to that entry.
|
||||
|
||||
Reusing hotkeys is disallowed, subsequent entries will not be
|
||||
highlighted, and will not work.
|
||||
|
||||
Keep in mind that the LABELs, not MENU LABELs, must be unique,
|
||||
or odd things will happen to the command-line.
|
||||
|
||||
|
||||
MENU INDENT count
|
||||
|
||||
(Only valid after a LABEL statement.)
|
||||
Will add "count" spaces in front of the displayed menu entry.
|
||||
|
||||
|
||||
MENU DISABLE
|
||||
|
||||
(Only valid after a LABEL statement.)
|
||||
Makes the entry unselectable. This allows you to make a
|
||||
section in your menu with different options below it.
|
||||
for example:
|
||||
|
||||
# Entries for network boots
|
||||
LABEL -
|
||||
MENU LABEL Network:
|
||||
MENU DISABLE
|
||||
|
||||
# Soft Cap Linux
|
||||
LABEL softcap
|
||||
MENU LABEL Soft Cap ^Linux 9.6.36
|
||||
MENU INDENT 1
|
||||
KERNEL softcap-9.6.36.bzi
|
||||
APPEND whatever
|
||||
|
||||
# Dos 6.22
|
||||
LABEL dos
|
||||
MENU LABEL ^Dos 6.22
|
||||
MENU INDENT 1
|
||||
KERNEL memdisk
|
||||
APPEND initrd=dos622.imz
|
||||
|
||||
# Separator
|
||||
MENU SEPARATOR
|
||||
|
||||
# Entries for local boots
|
||||
LABEL -
|
||||
MENU LABEL Local:
|
||||
MENU DISABLE
|
||||
|
||||
# Windows 2000
|
||||
LABEL w2k
|
||||
MENU LABEL ^Windows 2000
|
||||
MENU INDENT 1
|
||||
KERNEL chain.c32
|
||||
APPEND hd0 1
|
||||
|
||||
# Windows XP
|
||||
LABEL xp
|
||||
MENU LABEL Windows ^XP
|
||||
MENU INDENT 1
|
||||
KERNEL chain.c32
|
||||
APPEND hd0 2
|
||||
|
||||
MENU HIDE
|
||||
|
||||
(Only valid after a LABEL statement.)
|
||||
Suppresses a particular LABEL entry from the menu.
|
||||
|
||||
|
||||
MENU DEFAULT
|
||||
|
||||
(Only valid after a LABEL statement.)
|
||||
|
||||
Indicates that this entry should be the default for this
|
||||
particular submenu. See also the DEFAULT directive below.
|
||||
|
||||
|
||||
TEXT HELP
|
||||
Help text ...
|
||||
... which can span multiple lines
|
||||
ENDTEXT
|
||||
|
||||
(Only valid after a LABEL statement.)
|
||||
|
||||
Specifies a help text that should be displayed when a particular
|
||||
selection is highlighted.
|
||||
|
||||
|
||||
MENU PASSWD passwd
|
||||
|
||||
(Only valid after a LABEL statement.)
|
||||
|
||||
Sets a password on this menu entry. "passwd" can be either a
|
||||
cleartext password or a password encrypted with one of the
|
||||
following algorithms:
|
||||
|
||||
MD5 (Signature: $1$)
|
||||
SHA-1 (Signature: $4$)
|
||||
SHA-2-256 (Signature: $5$)
|
||||
SHA-2-512 (Signature: $6$)
|
||||
|
||||
Use the included Perl scripts "sha1pass" or "md5pass" to
|
||||
encrypt passwords. MD5 passwords are compatible with most
|
||||
Unix password file utilities; SHA-1 passwords are probably
|
||||
unique to Syslinux; SHA-2 passwords are compatible with very
|
||||
recent Linux distributions. Obviously, if you don't encrypt
|
||||
your passwords they will not be very secure at all.
|
||||
|
||||
If you are using passwords, you want to make sure you also use
|
||||
the settings "NOESCAPE 1", "PROMPT 0", and either set
|
||||
"ALLOWOPTIONS 0" or use a master password (see below.)
|
||||
|
||||
If passwd is an empty string, this menu entry can only be
|
||||
unlocked with the master password.
|
||||
|
||||
|
||||
MENU MASTER PASSWD passwd
|
||||
|
||||
Sets a master password. This password can be used to boot any
|
||||
menu entry, and is required for the [Tab] and [Esc] keys to
|
||||
work.
|
||||
|
||||
|
||||
MENU RESOLUTION height width
|
||||
|
||||
Requests a specific screen resolution when in graphics mode.
|
||||
The default is "640 480" corresponding to a resolution of
|
||||
640x480 pixels, which all VGA-compatible monitors should be
|
||||
able to display.
|
||||
|
||||
If the selected resolution is unavailable, the text mode menu
|
||||
is displayed instead.
|
||||
|
||||
|
||||
MENU BACKGROUND background
|
||||
|
||||
For vesamenu.c32, sets the background image. The background
|
||||
can either be a color (see MENU COLOR) or the name of an image
|
||||
file, which should be the size of the screen (normally 640x480
|
||||
pixels, but see MENU RESOLUTION) and either in PNG, JPEG or
|
||||
LSS16 format.
|
||||
|
||||
|
||||
MENU BEGIN [tagname]
|
||||
MENU END
|
||||
|
||||
Begin/end a submenu. The entries between MENU BEGIN and MENU
|
||||
END form a submenu, which is marked with a > mark on the right
|
||||
hand of the screen. Submenus inherit the properties of their
|
||||
parent menus, but can override them, and can thus have their
|
||||
own backgrounds, master passwords, titles, timeouts, messages
|
||||
and so forth.
|
||||
|
||||
|
||||
MENU GOTO tagname
|
||||
|
||||
(Only valid after a LABEL statement.)
|
||||
|
||||
This label will transfer to the named submenu instead of
|
||||
booting anything. To transfer to the top-level menu, specify
|
||||
"menu goto .top".
|
||||
|
||||
|
||||
MENU EXIT [tagname]
|
||||
|
||||
(Only valid after a label statement inside MENU BEGIN ...
|
||||
MENU END)
|
||||
|
||||
Exit to the next higher menu, or, if tagname is specified, to
|
||||
the named menu.
|
||||
|
||||
|
||||
MENU QUIT
|
||||
|
||||
(Only valid after a LABEL statement.)
|
||||
|
||||
This label quits the menu system.
|
||||
|
||||
WARNING: if MENU MASTER PASSWD or ALLOWOPTIONS 0 is set, this
|
||||
will still allow exiting to the CLI; however, a separate MENU
|
||||
PASSWD can of course be set for this label.
|
||||
|
||||
|
||||
MENU START
|
||||
|
||||
(Only valid inside MENU BEGIN ... MENU END)
|
||||
|
||||
Indicates that the menu system should start at the menu being
|
||||
defined instead of at the top-level menu. See also the
|
||||
DEFAULT directive below.
|
||||
|
||||
|
||||
DEFAULT label
|
||||
|
||||
Set the global default. If "label" points into a submenu,
|
||||
that menu becomes the start menu; in other words, this
|
||||
directive has the same effect as both MENU DEFAULT and MENU
|
||||
START.
|
||||
|
||||
For backwards compatibility with earlier versions of Syslinux,
|
||||
this directive is ignored unless the configuration file also
|
||||
contains a UI directive.
|
||||
|
||||
Note: the CLI accepts options after the label, or even a
|
||||
non-label. The menu system does not support that.
|
||||
|
||||
|
||||
MENU SAVE
|
||||
MENU NOSAVE
|
||||
|
||||
Remember the last entry selected and make that the default for
|
||||
the next boot. A password-protected menu entry is *not*
|
||||
saved. This requires the ADV data storage mechanism, which is
|
||||
currently only implemented for EXTLINUX, although the other
|
||||
Syslinux derivatives will accept the command (and ignore it.)
|
||||
|
||||
NOTE: MENU SAVE stores the LABEL tag of the selected entry;
|
||||
this mechanism therefore relies on LABEL tags being unique.
|
||||
On the other hand, it handles changes in the configuration
|
||||
file gracefully.
|
||||
|
||||
NOTE: In software RAID-1 setups MENU SAVE only stores the
|
||||
default label on the actual boot disk. This may lead to
|
||||
inconsistent reads from the array, or unexpectedly change the
|
||||
default label after array resynchronization or disk failure.
|
||||
|
||||
The MENU SAVE information can be fully cleared with
|
||||
"extlinux --reset-adv <bootdir>".
|
||||
|
||||
A MENU SAVE or MENU NOSAVE at the top of a (sub)menu affects
|
||||
all entries underneath that (sub)menu except those that in
|
||||
turn have MENU SAVE or MENU NOSAVE declared. This can be used
|
||||
to only save certain entires when selected.
|
||||
|
||||
|
||||
INCLUDE filename [tagname]
|
||||
MENU INCLUDE filename [tagname]
|
||||
|
||||
Include the contents of the configuration file filename at
|
||||
this point.
|
||||
|
||||
In the case of MENU INCLUDE, the included data is only seen by
|
||||
the menu system; the core syslinux code does not parse this
|
||||
command, so any labels defined in it are unavailable.
|
||||
|
||||
If a tagname is included, the whole file is considered to have
|
||||
been bracketed with a MENU BEGIN tagname ... MENU END pair,
|
||||
and will therefore show up as a submenu.
|
||||
|
||||
|
||||
MENU AUTOBOOT message
|
||||
|
||||
Replaces the message "Automatic boot in # second{,s}...". The
|
||||
symbol # is replaced with the number of seconds remaining.
|
||||
The syntax "{singular,[dual,]plural}" can be used to conjugate
|
||||
appropriately.
|
||||
|
||||
|
||||
MENU TABMSG message
|
||||
|
||||
Replaces the message "Press [Tab] to edit options".
|
||||
|
||||
|
||||
MENU NOTABMSG message
|
||||
|
||||
Takes the place of the TABMSG message if option editing is
|
||||
disabled. Defaults to blank.
|
||||
|
||||
|
||||
MENU PASSPROMPT message
|
||||
|
||||
Replaces the message "Password required".
|
||||
|
||||
|
||||
MENU COLOR element ansi foreground background shadow
|
||||
|
||||
Sets the color of element "element" to the specified color
|
||||
sequence:
|
||||
|
||||
screen Rest of the screen
|
||||
border Border area
|
||||
title Title bar
|
||||
unsel Unselected menu item
|
||||
hotkey Unselected hotkey
|
||||
sel Selection bar
|
||||
hotsel Selected hotkey
|
||||
disabled Disabled menu item
|
||||
scrollbar Scroll bar
|
||||
tabmsg Press [Tab] message
|
||||
cmdmark Command line marker
|
||||
cmdline Command line
|
||||
pwdborder Password box border
|
||||
pwdheader Password box header
|
||||
pwdentry Password box contents
|
||||
timeout_msg Timeout message
|
||||
timeout Timeout counter
|
||||
help Help text
|
||||
msgXX Message (F-key) file attribute XX
|
||||
|
||||
... where XX is two hexadecimal digits (the "plain text" is 07).
|
||||
|
||||
"ansi" is a sequence of semicolon-separated ECMA-48 Set
|
||||
Graphics Rendition (<ESC>[m) sequences:
|
||||
|
||||
0 reset all attributes to their defaults
|
||||
1 set bold
|
||||
4 set underscore (simulated with color on a color display)
|
||||
5 set blink
|
||||
7 set reverse video
|
||||
22 set normal intensity
|
||||
24 underline off
|
||||
25 blink off
|
||||
27 reverse video off
|
||||
30 set black foreground
|
||||
31 set red foreground
|
||||
32 set green foreground
|
||||
33 set brown foreground
|
||||
34 set blue foreground
|
||||
35 set magenta foreground
|
||||
36 set cyan foreground
|
||||
37 set white foreground
|
||||
38 set underscore on, set default foreground color
|
||||
39 set underscore off, set default foreground color
|
||||
40 set black background
|
||||
41 set red background
|
||||
42 set green background
|
||||
43 set brown background
|
||||
44 set blue background
|
||||
45 set magenta background
|
||||
46 set cyan background
|
||||
47 set white background
|
||||
49 set default background color
|
||||
|
||||
These are used (a) in text mode, and (b) on the serial
|
||||
console.
|
||||
|
||||
"foreground" and "background" are color codes in #AARRGGBB
|
||||
notation, where AA RR GG BB are hexadecimal digits for alpha
|
||||
(opacity), red, green and blue, respectively. #00000000
|
||||
represents fully transparent, and #ffffffff represents opaque
|
||||
white.
|
||||
|
||||
"shadow" controls the handling of the graphical console text
|
||||
shadow. Permitted values are "none" (no shadowing), "std" or
|
||||
"standard" (standard shadowing - foreground pixels are
|
||||
raised), "all" (both background and foreground raised), and
|
||||
"rev" or "reverse" (background pixels are raised.)
|
||||
|
||||
If any field is set to "*" or omitted (at the end of the line)
|
||||
then that field is left unchanged.
|
||||
|
||||
|
||||
The current defaults are:
|
||||
|
||||
menu color screen 37;40 #80ffffff #00000000 std
|
||||
menu color border 30;44 #40000000 #00000000 std
|
||||
menu color title 1;36;44 #c00090f0 #00000000 std
|
||||
menu color unsel 37;44 #90ffffff #00000000 std
|
||||
menu color hotkey 1;37;44 #ffffffff #00000000 std
|
||||
menu color sel 7;37;40 #e0000000 #20ff8000 all
|
||||
menu color hotsel 1;7;37;40 #e0400000 #20ff8000 all
|
||||
menu color disabled 1;30;44 #60cccccc #00000000 std
|
||||
menu color scrollbar 30;44 #40000000 #00000000 std
|
||||
menu color tabmsg 31;40 #90ffff00 #00000000 std
|
||||
menu color cmdmark 1;36;40 #c000ffff #00000000 std
|
||||
menu color cmdline 37;40 #c0ffffff #00000000 std
|
||||
menu color pwdborder 30;47 #80ffffff #20ffffff std
|
||||
menu color pwdheader 31;47 #80ff8080 #20ffffff std
|
||||
menu color pwdentry 30;47 #80ffffff #20ffffff std
|
||||
menu color timeout_msg 37;40 #80ffffff #00000000 std
|
||||
menu color timeout 1;37;40 #c0ffffff #00000000 std
|
||||
menu color help 37;40 #c0ffffff #00000000 std
|
||||
menu color msg07 37;40 #90ffffff #00000000 std
|
||||
|
||||
|
||||
MENU MSGCOLOR fg_filter bg_filter shadow
|
||||
|
||||
Sets *all* the msgXX colors to a color scheme derived from the
|
||||
fg_filter and bg_filter values. Background color zero is
|
||||
always treated as transparent. The default corresponds to:
|
||||
|
||||
menu msgcolor #90ffffff #80ffffff std
|
||||
|
||||
This directive should come before any directive that
|
||||
customizes individual msgXX colors.
|
||||
|
||||
|
||||
MENU WIDTH 80
|
||||
MENU MARGIN 10
|
||||
MENU PASSWORDMARGIN 3
|
||||
MENU ROWS 12
|
||||
MENU TABMSGROW 18
|
||||
MENU CMDLINEROW 18
|
||||
MENU ENDROW -1
|
||||
MENU PASSWORDROW 11
|
||||
MENU TIMEOUTROW 20
|
||||
MENU HELPMSGROW 22
|
||||
MENU HELPMSGENDROW -1
|
||||
MENU HIDDENROW -2
|
||||
MENU HSHIFT 0
|
||||
MENU VSHIFT 0
|
||||
|
||||
These options control the layout of the menu on the screen.
|
||||
The values above are the defaults.
|
||||
|
||||
A negative value is relative to the calculated length of the
|
||||
screen (25 for text mode, 28 for VESA graphics mode.)
|
||||
|
||||
|
||||
F1 textfile [background]
|
||||
...
|
||||
F12 textfile [background]
|
||||
|
||||
Displays full-screen help (also available at the command line.)
|
||||
The same control code sequences as in the command line
|
||||
interface are supported, although some are ignored.
|
||||
|
||||
Additionally, a optional second argument allows a different
|
||||
background image (see MENU BACKGROUND for supported formats)
|
||||
to be displayed.
|
||||
|
||||
|
||||
MENU HELP textfile [background]
|
||||
|
||||
Creates a menu entry which, when selected, displays
|
||||
full-screen help in the same way as the F-key help.
|
||||
|
||||
|
||||
The menu system honours the TIMEOUT command; if TIMEOUT is specified
|
||||
it will execute the ONTIMEOUT command if one exists, otherwise it will
|
||||
pick the default menu option. WARNING: the timeout action will bypass
|
||||
password protection even if one is set for the specified or default
|
||||
entry!
|
||||
|
||||
Normally, the user can press [Tab] to edit the menu entry, and [Esc]
|
||||
to return to the Syslinux command line. However, if the configuration
|
||||
file specifies ALLOWOPTIONS 0, these keys will be disabled, and if
|
||||
MENU MASTER PASSWD is set, they require the master password.
|
||||
|
||||
The simple menu system supports serial console, using the normal
|
||||
SERIAL directive. However, it can be quite slow over a slow serial
|
||||
link; you probably want to set your baudrate to 38400 or higher if
|
||||
possible. It requires a Linux/VT220/ANSI-compatible terminal on the
|
||||
other end.
|
||||
|
||||
|
||||
+++ USING AN ALTERNATE CONFIGURATION FILE +++
|
||||
|
||||
|
||||
It is also possible to load a secondary configuration file, to get to
|
||||
another menu. To do that, invoke menu.c32 with the name of the
|
||||
secondary configuration file.
|
||||
|
||||
LABEL othermenu
|
||||
MENU LABEL Another Menu
|
||||
KERNEL menu.c32
|
||||
APPEND othermenu.conf
|
||||
|
||||
If you specify more than one file, they will all be read, in the order
|
||||
specified. The dummy filename ~ (tilde) is replaced with the filename
|
||||
of the main configuration file.
|
||||
|
||||
# The file graphics.conf contains common color and layout commands for
|
||||
# all menus.
|
||||
LABEL othermenu
|
||||
MENU LABEL Another Menu
|
||||
KERNEL vesamenu.c32
|
||||
APPEND graphics.conf othermenu.conf
|
||||
|
||||
# Return to the main menu
|
||||
LABEL mainmenu
|
||||
MENU LABEL Return to Main Menu
|
||||
KERNEL vesamenu.c32
|
||||
APPEND graphics.conf ~
|
||||
|
||||
See also the MENU INCLUDE directive above.
|
||||
432
config/release/3rdparty/syslinux/doc/pxelinux.txt
vendored
432
config/release/3rdparty/syslinux/doc/pxelinux.txt
vendored
@@ -1,432 +0,0 @@
|
||||
PXELINUX
|
||||
|
||||
A bootloader for Linux using the PXE network booting protocol
|
||||
|
||||
Copyright 1994-2008 H. Peter Anvin - All Rights Reserved
|
||||
|
||||
This program is provided under the terms of the GNU General Public
|
||||
License, version 2 or, at your option, any later version. There is no
|
||||
warranty, neither expressed nor implied, to the function of this
|
||||
program. Please see the included file COPYING for details.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
PXELINUX is a Syslinux derivative, for booting Linux off a network
|
||||
server, using a network ROM conforming to the Intel PXE (Pre-Execution
|
||||
Environment) specification. PXELINUX is *not* a program that is
|
||||
intended to be flashed or burned into a PROM on the network card; if
|
||||
you want that, check out Etherboot (http://www.etherboot.org/).
|
||||
Etherboot 5.4 or later can also be used to create a PXE-compliant boot
|
||||
PROM for many network cards.
|
||||
|
||||
|
||||
++++ HOW TO CONFIGURE PXELINUX ++++
|
||||
|
||||
PXELINUX operates in many ways like SYSLINUX. If you are not familiar
|
||||
with SYSLINUX, read syslinux.txt first, since this documentation only
|
||||
explains the differences.
|
||||
|
||||
On the TFTP server, create the directory "/tftpboot", and copy the
|
||||
following files to it:
|
||||
|
||||
pxelinux.0 - from the Syslinux distribution
|
||||
|
||||
any kernel or initrd images you want to boot
|
||||
|
||||
Finally, create the directory "/tftpboot/pxelinux.cfg". The
|
||||
configuration file (equivalent of syslinux.cfg -- see syslinux.txt for
|
||||
the options here) will live in this directory. Because more than one
|
||||
system may be booted from the same server, the configuration file name
|
||||
depends on the IP address of the booting machine. PXELINUX will
|
||||
search for its config file on the boot server in the following way:
|
||||
|
||||
First, it will search for the config file using the client UUID, if
|
||||
one is provided by the PXE stack (note, some BIOSes don't have a
|
||||
valid UUID, and you might end up with something like all 1's.) This is
|
||||
in the standard UUID format using lower case hexadecimal digits, e.g.
|
||||
b8945908-d6a6-41a9-611d-74a6ab80b83d.
|
||||
|
||||
Next, it will search for the config file using the hardware type
|
||||
(using its ARP type code) and address, all in lower case hexadecimal
|
||||
with dash separators; for example, for an Ethernet (ARP type 1)
|
||||
with address 88:99:AA:BB:CC:DD it would search for the filename
|
||||
01-88-99-aa-bb-cc-dd.
|
||||
|
||||
Next, it will search for the config file using its own IP address
|
||||
in upper case hexadecimal, e.g. 192.0.2.91 -> C000025B
|
||||
(you can use the included progam "gethostip" to compute the
|
||||
hexadecimal IP address for any host.)
|
||||
|
||||
If that file is not found, it will remove one hex digit and try
|
||||
again. Ultimately, it will try looking for a file named "default"
|
||||
(in lower case).
|
||||
|
||||
As an example, if the boot file name is /mybootdir/pxelinux.0, the
|
||||
UUID is b8945908-d6a6-41a9-611d-74a6ab80b83d, the Ethernet MAC
|
||||
address is 88:99:AA:BB:CC:DD and the IP address 192.0.2.91, it will
|
||||
try:
|
||||
|
||||
/mybootdir/pxelinux.cfg/b8945908-d6a6-41a9-611d-74a6ab80b83d
|
||||
/mybootdir/pxelinux.cfg/01-88-99-aa-bb-cc-dd
|
||||
/mybootdir/pxelinux.cfg/C000025B
|
||||
/mybootdir/pxelinux.cfg/C000025
|
||||
/mybootdir/pxelinux.cfg/C00002
|
||||
/mybootdir/pxelinux.cfg/C0000
|
||||
/mybootdir/pxelinux.cfg/C000
|
||||
/mybootdir/pxelinux.cfg/C00
|
||||
/mybootdir/pxelinux.cfg/C0
|
||||
/mybootdir/pxelinux.cfg/C
|
||||
/mybootdir/pxelinux.cfg/default
|
||||
|
||||
... in that order.
|
||||
|
||||
Note that all filename references are relative to the directory
|
||||
pxelinux.0 lives in. PXELINUX generally requires that filenames
|
||||
(including any relative path) are 127 characters or shorter in length.
|
||||
|
||||
Starting in release 3.20, PXELINUX will no longer apply a built-in
|
||||
default if it cannot find any configuration file at all; instead it
|
||||
will reboot after the timeout interval has expired. This keeps a
|
||||
machine from getting stuck indefinitely due to a boot server failure.
|
||||
|
||||
Starting in release 3.50, PXELINUX displays network information at
|
||||
the boot prompt pressing <Ctrl-N>.
|
||||
|
||||
PXELINUX does not support MTFTP, and I have no plans of doing so, as
|
||||
MTFTP is inherently broken for files more than 65535 packets (about
|
||||
92 MB) in size. It is of course possible to use MTFTP for the initial
|
||||
boot, if you have such a setup. MTFTP server setup is beyond the
|
||||
scope of this document.
|
||||
|
||||
|
||||
++++ gPXE-ENHANCED VARIANTS ++++
|
||||
|
||||
gPXE can be used to enhance PXELINUX's functionality to also include
|
||||
HTTP transfers, greatly increasing load speed and allowing for standard
|
||||
HTTP scripts to present PXELINUX's configuration file. pxelinux.0 is
|
||||
the plain variant. gpxelinux.0 (included as of 3.70) is gPXE's
|
||||
undionly.kkpxe, pxelinux.0 and a script to run pxelinux.0. gpxelinuxk.0
|
||||
(included as of 4.04) is gPXE's undionly.kpxe, pxelinux.0 and a script
|
||||
to run pxelinux.0. gpxelinuxk.0 should only be used with systems that
|
||||
are incompatible with gpxelinux.0 as it prevents certain functionality
|
||||
from working (LOCALBOOT with a type not equal to -1) and is incompatible
|
||||
with certain hardware, PXE stacks and network setups.
|
||||
|
||||
|
||||
++++ SETTING UP THE TFTP SERVER ++++
|
||||
|
||||
PXELINUX currently requires that the boot server has a TFTP server
|
||||
which supports the "tsize" TFTP option (RFC 1784/RFC 2349). The
|
||||
"tftp-hpa" TFTP server, which support options, is available at:
|
||||
|
||||
http://www.kernel.org/pub/software/network/tftp/
|
||||
ftp://www.kernel.org/pub/software/network/tftp/
|
||||
|
||||
... and on any kernel.org mirror (see http://www.kernel.org/mirrors/).
|
||||
|
||||
Another TFTP server which supports this is atftp by Jean-Pierre
|
||||
Lefebvre:
|
||||
|
||||
ftp://ftp.mamalinux.com/pub/atftp/
|
||||
|
||||
If your boot server is running Windows (and you can't fix that), try
|
||||
tftpd32 by Philippe Jounin (you need version 2.11 or later; previous
|
||||
versions had a bug which made it incompatible with PXELINUX):
|
||||
|
||||
http://tftpd32.jounin.net/
|
||||
|
||||
|
||||
++++ SETTING UP THE DHCP SERVER ++++
|
||||
|
||||
The PXE protocol uses a very complex set of extensions to DHCP or
|
||||
BOOTP. However, most PXE implementations -- this includes all Intel
|
||||
ones version 0.99n and later -- seem to be able to boot in a
|
||||
"conventional" DHCP/TFTP configuration. Assuming you don't have to
|
||||
support any very old or otherwise severely broken clients, this is
|
||||
probably the best configuration unless you already have a PXE boot
|
||||
server on your network.
|
||||
|
||||
A sample DHCP setup, using the "conventional TFTP" configuration,
|
||||
would look something like the following, using ISC dhcp 2.0 dhcpd.conf
|
||||
syntax:
|
||||
|
||||
allow booting;
|
||||
allow bootp;
|
||||
|
||||
# Standard configuration directives...
|
||||
|
||||
option domain-name "<domain name>";
|
||||
option subnet-mask <subnet mask>;
|
||||
option broadcast-address <broadcast address>;
|
||||
option domain-name-servers <dns servers>;
|
||||
option routers <default router>;
|
||||
|
||||
# Group the PXE bootable hosts together
|
||||
group {
|
||||
# PXE-specific configuration directives...
|
||||
next-server <TFTP server address>;
|
||||
filename "/tftpboot/pxelinux.0";
|
||||
|
||||
# You need an entry like this for every host
|
||||
# unless you're using dynamic addresses
|
||||
host <hostname> {
|
||||
hardware ethernet <ethernet address>;
|
||||
fixed-address <hostname>;
|
||||
}
|
||||
}
|
||||
|
||||
Note that if your particular TFTP daemon runs under chroot (tftp-hpa
|
||||
will do this if you specify the -s (secure) option; this is highly
|
||||
recommended), you almost certainly should not include the /tftpboot
|
||||
prefix in the filename statement.
|
||||
|
||||
If this does not work for your configuration, you probably should set
|
||||
up a "PXE boot server" on port 4011 of your TFTP server; a free PXE
|
||||
boot server is available at:
|
||||
|
||||
http://www.kano.org.uk/projects/pxe/
|
||||
|
||||
With such a boot server defined, your DHCP configuration should look
|
||||
the same except for an "option dhcp-class-identifier" ("option
|
||||
vendor-class-identifier" if you are using DHCP 3.0):
|
||||
|
||||
allow booting;
|
||||
allow bootp;
|
||||
|
||||
# Standard configuration directives...
|
||||
|
||||
option domain-name "<domain name>";
|
||||
option subnet-mask <subnet mask>;
|
||||
option broadcast-address <broadcast address>;
|
||||
option domain-name-servers <dns servers>;
|
||||
option routers <default router>;
|
||||
|
||||
# Group the PXE bootable hosts together
|
||||
group {
|
||||
# PXE-specific configuration directives...
|
||||
option dhcp-class-identifier "PXEClient";
|
||||
next-server <pxe boot server address>;
|
||||
|
||||
# You need an entry like this for every host
|
||||
# unless you're using dynamic addresses
|
||||
host <hostname> {
|
||||
hardware ethernet <ethernet address>;
|
||||
fixed-address <hostname>;
|
||||
}
|
||||
}
|
||||
|
||||
Here, the boot file name is obtained from the PXE server.
|
||||
|
||||
If the "conventional TFTP" configuration doesn't work on your clients,
|
||||
and setting up a PXE boot server is not an option, you can attempt the
|
||||
following configuration. It has been known to boot some
|
||||
configurations correctly; however, there are no guarantees:
|
||||
|
||||
allow booting;
|
||||
allow bootp;
|
||||
|
||||
# Standard configuration directives...
|
||||
|
||||
option domain-name "<domain name>";
|
||||
option subnet-mask <subnet mask>;
|
||||
option broadcast-address <broadcast address>;
|
||||
option domain-name-servers <dns servers>;
|
||||
option routers <default router>;
|
||||
|
||||
# Group the PXE bootable hosts together
|
||||
group {
|
||||
# PXE-specific configuration directives...
|
||||
option dhcp-class-identifier "PXEClient";
|
||||
option vendor-encapsulated-options 09:0f:80:00:0c:4e:65:74:77:6f:72:6b:20:62:6f:6f:74:0a:07:00:50:72:6f:6d:70:74:06:01:02:08:03:80:00:00:47:04:80:00:00:00:ff;
|
||||
next-server <TFTP server>;
|
||||
filename "/tftpboot/pxelinux.0";
|
||||
|
||||
# You need an entry like this for every host
|
||||
# unless you're using dynamic addresses
|
||||
host <hostname> {
|
||||
hardware ethernet <ethernet address>;
|
||||
fixed-address <hostname>;
|
||||
}
|
||||
}
|
||||
|
||||
Note that this *will not* boot some clients that *will* boot with the
|
||||
"conventional TFTP" configuration; Intel Boot Client 3.0 and later are
|
||||
known to fall into this category.
|
||||
|
||||
|
||||
++++ SPECIAL DHCP OPTIONS ++++
|
||||
|
||||
PXELINUX (starting with version 1.62) supports the following
|
||||
nonstandard DHCP options, which depending on your DHCP server you may
|
||||
be able to use to customize the specific behaviour of PXELINUX. See
|
||||
RFC 5071 for some additional information about these options.
|
||||
|
||||
Option 208 pxelinux.magic
|
||||
- Earlier versions of PXELINUX required this to be set to
|
||||
F1:00:74:7E (241.0.116.126) for PXELINUX to
|
||||
recognize any special DHCP options whatsoever. As of
|
||||
PXELINUX 3.55, this option is deprecated and is no longer
|
||||
required.
|
||||
|
||||
Option 209 pxelinux.configfile
|
||||
- Specifies the PXELINUX configuration file name.
|
||||
|
||||
Option 210 pxelinux.pathprefix
|
||||
- Specifies the PXELINUX common path prefix, instead of
|
||||
deriving it from the boot file name. This almost certainly
|
||||
needs to end in whatever character the TFTP server OS uses
|
||||
as a pathname separator, e.g. slash (/) for Unix.
|
||||
|
||||
Option 211 pxelinux.reboottime
|
||||
- Specifies, in seconds, the time to wait before reboot in the
|
||||
event of TFTP failure. 0 means wait "forever" (in reality,
|
||||
it waits approximately 136 years.)
|
||||
|
||||
ISC dhcp 3.0 supports a rather nice syntax for specifying custom
|
||||
options; you can use the following syntax in dhcpd.conf if you are
|
||||
running this version of dhcpd:
|
||||
|
||||
option space pxelinux;
|
||||
option pxelinux.magic code 208 = string;
|
||||
option pxelinux.configfile code 209 = text;
|
||||
option pxelinux.pathprefix code 210 = text;
|
||||
option pxelinux.reboottime code 211 = unsigned integer 32;
|
||||
|
||||
NOTE: In earlier versions of PXELINUX, this would only work as a
|
||||
"site-option-space". Since PXELINUX 2.07, this will work both as a
|
||||
"site-option-space" (unencapsulated) and as a "vendor-option-space"
|
||||
(type 43 encapsulated.) This may avoid messing with the
|
||||
dhcp-parameter-request-list, as detailed below.
|
||||
|
||||
Then, inside your PXELINUX-booting group or class (whereever you have
|
||||
the PXELINUX-related options, such as the filename option), you can
|
||||
add, for example:
|
||||
|
||||
# Always include the following lines for all PXELINUX clients
|
||||
site-option-space "pxelinux";
|
||||
option pxelinux.magic f1:00:74:7e;
|
||||
if exists dhcp-parameter-request-list {
|
||||
# Always send the PXELINUX options (specified in hexadecimal)
|
||||
option dhcp-parameter-request-list = concat(option dhcp-parameter-request-list,d0,d1,d2,d3);
|
||||
}
|
||||
# These lines should be customized to your setup
|
||||
option pxelinux.configfile "configs/common";
|
||||
option pxelinux.pathprefix "/tftpboot/pxelinux/files/";
|
||||
option pxelinux.reboottime 30;
|
||||
filename "/tftpboot/pxelinux/pxelinux.bin";
|
||||
|
||||
Note that the configfile is relative to the pathprefix: this will look
|
||||
for a config file called /tftpboot/pxelinux/files/configs/common on
|
||||
the TFTP server.
|
||||
|
||||
The "option dhcp-parameter-request-list" statement forces the DHCP
|
||||
server to send the PXELINUX-specific options, even though they are not
|
||||
explicitly requested. Since the DHCP request is done before PXELINUX
|
||||
is loaded, the PXE client won't know to request them.
|
||||
|
||||
Using ISC dhcp 3.0 you can create a lot of these strings on the fly.
|
||||
For example, to use the hexadecimal form of the hardware address as
|
||||
the configuration file name, you could do something like:
|
||||
|
||||
site-option-space "pxelinux";
|
||||
option pxelinux.magic f1:00:74:7e;
|
||||
if exists dhcp-parameter-request-list {
|
||||
# Always send the PXELINUX options (specified in hexadecimal)
|
||||
option dhcp-parameter-request-list = concat(option dhcp-parameter-request-list,d0,d1,d2,d3);
|
||||
}
|
||||
option pxelinux.configfile =
|
||||
concat("pxelinux.cfg/", binary-to-ascii(16, 8, ":", hardware));
|
||||
filename "/tftpboot/pxelinux.bin";
|
||||
|
||||
If you used this from a client whose Ethernet address was
|
||||
58:FA:84:CF:55:0E, this would look for a configuration file named
|
||||
"/tftpboot/pxelinux.cfg/1:58:fa:84:cf:55:e".
|
||||
|
||||
|
||||
++++ ALTERNATE TFTP SERVERS ++++
|
||||
|
||||
PXELINUX supports the following special pathname conventions:
|
||||
|
||||
::filename
|
||||
|
||||
Suppresses the common filename prefix, i.e. passes the string
|
||||
"filename" unmodified to the server.
|
||||
|
||||
IP address::filename (e.g. 192.0.2.1::filename)
|
||||
|
||||
Suppresses the common filename prefix, *and* sends a request
|
||||
to an alternate TFTP server. Instead of an IP address, a
|
||||
DNS name can be used. It will be assumed to be fully
|
||||
qualified if it contains dots; otherwise the local domain as
|
||||
reported by the DHCP server (option 15) will be added.
|
||||
|
||||
:: was chosen because it is unlikely to conflict with operating system
|
||||
usage. However, if you happen to have an environment for which the
|
||||
special treatment of :: is a problem, please contact the Syslinux
|
||||
mailing list.
|
||||
|
||||
|
||||
++++ SOME NOTES ++++
|
||||
|
||||
If the boot fails, PXELINUX (unlike SYSLINUX) will not wait forever;
|
||||
rather, if it has not received any input for approximately five
|
||||
minutes after displaying an error message, it will reset the machine.
|
||||
This allows an unattended machine to recover in case it had bad enough
|
||||
luck of trying to boot at the same time the TFTP server goes down.
|
||||
|
||||
Lots of PXE stacks, especially old ones, have various problems of
|
||||
varying degrees of severity. Please see:
|
||||
|
||||
http://syslinux.zytor.com/hardware.php
|
||||
|
||||
... for a list of currently known hardware problems, with workarounds
|
||||
if known.
|
||||
|
||||
|
||||
++++ KEEPING THE PXE STACK AROUND ++++
|
||||
|
||||
Normally, PXELINUX will unload the PXE and UNDI stacks before invoking
|
||||
the kernel. In special circumstances (for example, when using MEMDISK
|
||||
to boot an operating system with an UNDI network driver) it might be
|
||||
desirable to keep the PXE stack in memory. If the option "keeppxe"
|
||||
is given on the kernel command line, PXELINUX will keep the PXE and
|
||||
UNDI stacks in memory. (If you don't know what this means, you
|
||||
probably don't need it.)
|
||||
|
||||
|
||||
++++ PROBLEMS WITH YOUR PXE STACK ++++
|
||||
|
||||
There are a number of extremely broken PXE stacks in the field. The
|
||||
gPXE project (formerly known as Etherboot) provides an open-source PXE
|
||||
stack that works with a number of cards, and which can be loaded from
|
||||
a CD-ROM, USB key, or floppy if desired.
|
||||
|
||||
Information on gPXE is available from:
|
||||
|
||||
http://www.etherboot.org/
|
||||
|
||||
... and ready-to-use ROM or disk images from:
|
||||
|
||||
http://www.rom-o-matic.net/
|
||||
|
||||
Some cards, like may systems with the SiS 900, has a PXE stack which
|
||||
works just barely well enough to load a single file, but doesn't
|
||||
handle the more advanced items required by PXELINUX. If so, it is
|
||||
possible to use the built-in PXE stack to load gPXE, which can then
|
||||
load PXELINUX. See:
|
||||
|
||||
http://www.etherboot.org/wiki/pxechaining
|
||||
|
||||
|
||||
++++ CURRENTLY KNOWN PROBLEMS ++++
|
||||
|
||||
The following problems are known with PXELINUX, so far:
|
||||
|
||||
+ The error recovery routine doesn't work quite right. For right now,
|
||||
it just does a hard reset - seems good enough.
|
||||
+ We should probably call the UDP receive function in the keyboard
|
||||
entry loop, so that we answer ARP requests.
|
||||
+ Boot sectors/disk images are not supported yet.
|
||||
|
||||
If you have additional problems, please contact the Syslinux mailing
|
||||
list (see syslinux.txt for the address.)
|
||||
787
config/release/3rdparty/syslinux/doc/rfc5071.txt
vendored
787
config/release/3rdparty/syslinux/doc/rfc5071.txt
vendored
@@ -1,787 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Network Working Group D. Hankins
|
||||
Request for Comments: 5071 ISC
|
||||
Category: Informational December 2007
|
||||
|
||||
|
||||
Dynamic Host Configuration Protocol Options Used by PXELINUX
|
||||
|
||||
Status of This Memo
|
||||
|
||||
This memo provides information for the Internet community. It does
|
||||
not specify an Internet standard of any kind. Distribution of this
|
||||
memo is unlimited.
|
||||
|
||||
Abstract
|
||||
|
||||
This document describes the use by PXELINUX of some DHCP Option Codes
|
||||
numbering from 208-211.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Hankins Informational [Page 1]
|
||||
|
||||
RFC 5071 PXELINUX Options December 2007
|
||||
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
3. MAGIC Option . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
3.1. Description . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
3.2. Packet Format . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
3.3. Applicability . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
3.4. Response to RFC 3942 . . . . . . . . . . . . . . . . . . . 5
|
||||
4. Configuration File Option . . . . . . . . . . . . . . . . . . 5
|
||||
4.1. Description . . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
4.2. Packet Format . . . . . . . . . . . . . . . . . . . . . . 6
|
||||
4.3. Applicability . . . . . . . . . . . . . . . . . . . . . . 6
|
||||
4.4. Response to RFC 3942 . . . . . . . . . . . . . . . . . . . 6
|
||||
4.5. Client and Server Behaviour . . . . . . . . . . . . . . . 6
|
||||
5. Path Prefix Option . . . . . . . . . . . . . . . . . . . . . . 7
|
||||
5.1. Description . . . . . . . . . . . . . . . . . . . . . . . 7
|
||||
5.2. Packet Format . . . . . . . . . . . . . . . . . . . . . . 7
|
||||
5.3. Applicability . . . . . . . . . . . . . . . . . . . . . . 7
|
||||
5.4. Response to RFC 3942 . . . . . . . . . . . . . . . . . . . 8
|
||||
5.5. Client and Server Behaviour . . . . . . . . . . . . . . . 8
|
||||
6. Reboot Time Option . . . . . . . . . . . . . . . . . . . . . . 9
|
||||
6.1. Description . . . . . . . . . . . . . . . . . . . . . . . 9
|
||||
6.2. Packet Format . . . . . . . . . . . . . . . . . . . . . . 9
|
||||
6.3. Applicability . . . . . . . . . . . . . . . . . . . . . . 10
|
||||
6.4. Response to RFC 3942 . . . . . . . . . . . . . . . . . . . 10
|
||||
6.5. Client and Server Behaviour . . . . . . . . . . . . . . . 10
|
||||
7. Specification Conformance . . . . . . . . . . . . . . . . . . 11
|
||||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 11
|
||||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
|
||||
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 12
|
||||
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
|
||||
11.1. Normative References . . . . . . . . . . . . . . . . . . . 12
|
||||
11.2. Informative References . . . . . . . . . . . . . . . . . . 12
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Hankins Informational [Page 2]
|
||||
|
||||
RFC 5071 PXELINUX Options December 2007
|
||||
|
||||
|
||||
1. Introduction
|
||||
|
||||
PXE, the Preboot eXecution Environment, is a first-stage network
|
||||
bootstrap agent. PXE is loaded out of firmware on the client host,
|
||||
and performs DHCP [3] queries to obtain an IP address.
|
||||
|
||||
Once on the network, it loads a second-stage bootstrap agent as
|
||||
configured by DHCP header and option contents.
|
||||
|
||||
PXELINUX is one such second-stage bootstrap agent. Once PXE has
|
||||
passed execution to it, PXELINUX seeks its configuration from a cache
|
||||
of DHCP options supplied to the PXE first-stage agent, and then takes
|
||||
action based upon those options.
|
||||
|
||||
Most frequently, this implies loading via Trivial File Transfer
|
||||
Protocol (TFTP) [6] one or more images that are decompressed into
|
||||
memory, then executed to pass execution to the final Host Operating
|
||||
System.
|
||||
|
||||
PXELINUX uses DHCP options 208-211 to govern parts of this bootstrap
|
||||
process, but these options are not requested by the PXE DHCP client
|
||||
at the time it acquires its lease. At that time, the PXE bootloader
|
||||
has no knowledge that PXELINUX is going to be in use, and even so,
|
||||
would have no way to know what option(s) PXELINUX might digest.
|
||||
Local installations that serve this PXELINUX image to its clients
|
||||
must also configure their DHCP servers to provide these options even
|
||||
though they are not on the DHCP Parameter Request List [4].
|
||||
|
||||
These options are:
|
||||
|
||||
o "MAGIC" - 208 - An option whose presence and content verifies to
|
||||
the PXELINUX bootloader that the options numbered 209-211 are for
|
||||
the purpose as described herein.
|
||||
|
||||
o "ConfigFile" - 209 - Configures the path/filename component of the
|
||||
configuration file's location, which this bootloader should use to
|
||||
configure itself.
|
||||
|
||||
o "PathPrefix" - 210 - Configures a value to be prepended to the
|
||||
ConfigFile to discern the directory location of the file.
|
||||
|
||||
o "RebootTime" - 211 - Configures a timeout after which the
|
||||
bootstrap program will reboot the system (most likely returning it
|
||||
to PXE).
|
||||
|
||||
Historically, these option codes numbering from 208-211 were
|
||||
designated 'Site Local', but after publication of RFC3942 [8], they
|
||||
were made available for allocation as new standard DHCP options.
|
||||
|
||||
|
||||
|
||||
Hankins Informational [Page 3]
|
||||
|
||||
RFC 5071 PXELINUX Options December 2007
|
||||
|
||||
|
||||
This document marks these codes as assigned.
|
||||
|
||||
This direct assignment of option code values in the option
|
||||
definitions below is unusual as it is not mentioned in DHCP Option
|
||||
Code assignment guidelines [5]. This document's Option Code
|
||||
assignments are done within RFC 3942's provisions for documenting
|
||||
prior use of option codes within the new range (128-223 inclusive).
|
||||
|
||||
2. Terminology
|
||||
|
||||
o "first-stage bootloader" - Although a given bootloading order may
|
||||
have many stages, such as where a BIOS boots a DOS Boot Disk,
|
||||
which then loads a PXE executable, it is, in this example, only
|
||||
the PXE executable that this document describes as the "first-
|
||||
stage bootloader" -- in essence, this is the first stage of
|
||||
booting at which DHCP is involved.
|
||||
|
||||
o "second-stage bootloader" - This describes a program loaded by the
|
||||
first-stage bootloader at the behest of the DHCP server.
|
||||
|
||||
o "bootloader" and "network bootstrap agent" - These are synonyms,
|
||||
excepting that "bootloader" is intentionally vague in that its
|
||||
next form of bootstrapping may not in fact involve network
|
||||
resources.
|
||||
|
||||
The key words "MAY", "MUST", "MUST NOT", "SHOULD", and "SHOULD NOT"
|
||||
in this document are to be interpreted as described in RFC 2119 [2].
|
||||
|
||||
3. MAGIC Option
|
||||
|
||||
3.1. Description
|
||||
|
||||
If this option is provided to the PXE bootloader, then the value is
|
||||
checked by PXELINUX to match the octet string f1:00:74:7e. If this
|
||||
matches, then PXELINUX bootloaders will also consume options 209-211,
|
||||
as described below. Otherwise, they are ignored.
|
||||
|
||||
This measure was intended to ensure that, as the 'Site Local' option
|
||||
space is not allocated from a central authority, no conflict would
|
||||
result in a PXELINUX bootloader improperly digesting options intended
|
||||
for another purpose.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Hankins Informational [Page 4]
|
||||
|
||||
RFC 5071 PXELINUX Options December 2007
|
||||
|
||||
|
||||
3.2. Packet Format
|
||||
|
||||
The MAGIC Option format is as follows:
|
||||
|
||||
Code Length m1 m2 m3 m4
|
||||
+--------+--------+--------+--------+--------+--------+
|
||||
| 208 | 4 | 0xF1 | 0x00 | 0x74 | 0x7E |
|
||||
+--------+--------+--------+--------+--------+--------+
|
||||
|
||||
The code for this option is 208. The length is always four.
|
||||
|
||||
3.3. Applicability
|
||||
|
||||
This option is absolutely inapplicable to any other purpose.
|
||||
|
||||
3.4. Response to RFC 3942
|
||||
|
||||
The option code 208 will be adopted for this purpose and immediately
|
||||
deprecated. Future standards action may return this option to an
|
||||
available status should it be necessary.
|
||||
|
||||
A collision of the use of this option is harmless (at least from
|
||||
PXELINUX' point of view) by design: if it does not match the
|
||||
aforementioned magic value, the PXELINUX bootloader will take no
|
||||
special action.
|
||||
|
||||
The PXELINUX project will deprecate the use of this option; future
|
||||
versions of the software will not evaluate its contents.
|
||||
|
||||
It is reasonable to utilize this option code for another purpose, but
|
||||
it is recommended to do this at a later time, given the desire to
|
||||
avoid potential collisions in legacy user bases.
|
||||
|
||||
4. Configuration File Option
|
||||
|
||||
4.1. Description
|
||||
|
||||
Once the PXELINUX executable has been entered from the PXE
|
||||
bootloader, it evaluates this option and loads a file of that name
|
||||
via TFTP. The contents of this file serve to configure PXELINUX in
|
||||
its next stage of bootloading (specifying boot image names,
|
||||
locations, boot-time flags, text to present the user in menu
|
||||
selections, etc).
|
||||
|
||||
In the absence of this option, the PXELINUX agent will search the
|
||||
TFTP server (as determined by PXE prior to this stage) for a config
|
||||
file of several default names.
|
||||
|
||||
|
||||
|
||||
|
||||
Hankins Informational [Page 5]
|
||||
|
||||
RFC 5071 PXELINUX Options December 2007
|
||||
|
||||
|
||||
4.2. Packet Format
|
||||
|
||||
The Configuration File Option format is as follows:
|
||||
|
||||
Code Length Config-file...
|
||||
+--------+--------+--------+--------+--------+--------+
|
||||
| 209 | n | c1 | c2 | ... | c(n) |
|
||||
+--------+--------+--------+--------+--------+--------+
|
||||
|
||||
The code for this option is 209. The Config-file (c1..c(n)) is an
|
||||
NVT-ASCII [1] printable string; it is not terminated by a zero or any
|
||||
other value.
|
||||
|
||||
4.3. Applicability
|
||||
|
||||
Any bootloader, PXE or otherwise, that makes use of a separate
|
||||
configuration file rather than containing all configurations within
|
||||
DHCP options (which may be impossible due to the limited space
|
||||
available for DHCP options) may conceivably make use of this option.
|
||||
|
||||
4.4. Response to RFC 3942
|
||||
|
||||
The code 209 will be adopted for this purpose.
|
||||
|
||||
4.5. Client and Server Behaviour
|
||||
|
||||
The Config File Option MUST be supplied by the DHCP server if it
|
||||
appears on the Parameter Request List, but MUST also be supplied if
|
||||
the server administrator believed it would later be useful to the
|
||||
client (such as because the server is configured to offer a second-
|
||||
stage boot image, which they know will make use of it). The option
|
||||
MUST NOT be supplied if no value has been configured for it, or if a
|
||||
value of zero length has been configured.
|
||||
|
||||
The DHCP client MUST only cache this option in a location the second-
|
||||
stage bootloader may access.
|
||||
|
||||
The second-stage bootloader MUST, in concert with other DHCP options
|
||||
and fields, use this option's value as a filename to be loaded via
|
||||
TFTP and read for further second-stage-loader-specific configuration
|
||||
parameters. The format and content of such a file is specific to the
|
||||
second-stage bootloader, and as such, is out of scope of this
|
||||
document.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Hankins Informational [Page 6]
|
||||
|
||||
RFC 5071 PXELINUX Options December 2007
|
||||
|
||||
|
||||
5. Path Prefix Option
|
||||
|
||||
5.1. Description
|
||||
|
||||
In PXELINUX' case, it is often the case that several different
|
||||
environments would have the same TFTP path prefix, but would have
|
||||
different filenames (for example: hosts' bootloader images and config
|
||||
files may be kept in a directory structure derived from their Media
|
||||
Access Control (MAC) address). Consequently, it was deemed
|
||||
worthwhile to deliver a TFTP path prefix configuration option, so
|
||||
that these two things could be configured separately in a DHCP Server
|
||||
configuration: the prefix and the possibly host-specific file
|
||||
location.
|
||||
|
||||
The actual filename that PXELINUX requests from its TFTP server is
|
||||
derived by prepending this value to the Config File Option above.
|
||||
Once this config file is loaded and during processing, any TFTP file
|
||||
paths specified within it are similarly processed -- prepending the
|
||||
contents of this option.
|
||||
|
||||
5.2. Packet Format
|
||||
|
||||
The Path Prefix Option format is as follows:
|
||||
|
||||
Code Length Path-Prefix...
|
||||
+--------+--------+--------+--------+--------+--------+
|
||||
| 210 | n | p1 | p2 | ... | p(n) |
|
||||
+--------+--------+--------+--------+--------+--------+
|
||||
|
||||
The code for this option is 210. The Path Prefix is an NVT-ASCII
|
||||
printable string; it is not terminated by zero or any other value.
|
||||
|
||||
5.3. Applicability
|
||||
|
||||
This option came into existence because server administrators found
|
||||
it useful to configure the prefix and suffix of the config file path
|
||||
separately. A group of different PXE booting clients may use the
|
||||
same path prefix, but different filenames, or vice versa.
|
||||
|
||||
The 'shortcut' this represents is worthwhile, but it is questionable
|
||||
whether that needs to manifest itself on the protocol wire.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Hankins Informational [Page 7]
|
||||
|
||||
RFC 5071 PXELINUX Options December 2007
|
||||
|
||||
|
||||
It only becomes interesting from a protocol standpoint if other
|
||||
options are adopted that prefix this value as well -- performing a
|
||||
kind of string compression is highly beneficial to the limited
|
||||
available DHCP option space.
|
||||
|
||||
But it's clearly inapplicable to any current use of, e.g., the
|
||||
FILENAME header contents or the DHCP Boot File Name option (#67).
|
||||
Use of these fields is encoded on firmware of thousands of devices
|
||||
that can't or are not likely to be upgraded. Altering any behaviour
|
||||
here is likely to cause severe compatibility problems.
|
||||
|
||||
Although compression of the TFTP-loaded configuration file contents
|
||||
is not a compelling factor, contrived configurations using these
|
||||
values may also exist: where each of a large variety of different
|
||||
clients load the same configuration file, with the same contents, but
|
||||
due to a differently configured path prefix actually load different
|
||||
images. Whether this sort of use is truly needed remains unproven.
|
||||
|
||||
5.4. Response to RFC 3942
|
||||
|
||||
The code 210 will be adopted for this purpose.
|
||||
|
||||
5.5. Client and Server Behaviour
|
||||
|
||||
The Path Prefix option MUST be supplied by the DHCP server if it
|
||||
appears on the Parameter Request List, but MUST also be supplied if
|
||||
the server administrator believed it would later be useful to the
|
||||
client (such as because the server is configured to offer a second-
|
||||
stage boot image that they know will make use of it). The option
|
||||
MUST NOT be supplied if no value has been configured for it, or if a
|
||||
value of zero length has been configured.
|
||||
|
||||
The DHCP client MUST only cache this option in a location where the
|
||||
second-stage bootloader may access it.
|
||||
|
||||
The second-stage bootloader MUST prepend this option's value, if any,
|
||||
to the contents of the ConfigFile option prior to obtaining the
|
||||
resulting value via TFTP, or the default 'Config File Search Path',
|
||||
which the second-stage bootloader iterates in the absence of a Config
|
||||
File Option. The client MAY prepend the value to other configuration
|
||||
directives within that file once it has been loaded. The client MUST
|
||||
NOT prepend this option's value to any other DHCP option contents or
|
||||
field, unless explicitly stated in a document describing that option
|
||||
or field.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Hankins Informational [Page 8]
|
||||
|
||||
RFC 5071 PXELINUX Options December 2007
|
||||
|
||||
|
||||
6. Reboot Time Option
|
||||
|
||||
6.1. Description
|
||||
|
||||
Should PXELINUX be executed, and then for some reason, be unable to
|
||||
reach its TFTP server to continue bootstrapping, the client will, by
|
||||
default, reboot itself after 300 seconds have passed. This may be
|
||||
too long, too short, or inappropriate behaviour entirely, depending
|
||||
on the environment.
|
||||
|
||||
By configuring a non-zero value in this option, admins can inform
|
||||
PXELINUX of which specific timeout is desired. The client will
|
||||
reboot itself if it fails to achieve its configured network resources
|
||||
within the specified number of seconds.
|
||||
|
||||
This reboot will run through the system's normal boot-time execution
|
||||
path, most likely leading it back to PXE and therefore PXELINUX. So,
|
||||
in the general case, this is akin to returning the client to the DHCP
|
||||
INIT state.
|
||||
|
||||
By configuring zero, the feature is disabled, and instead the client
|
||||
chooses to remove itself from the network and wait indefinitely for
|
||||
operator intervention.
|
||||
|
||||
It should be stressed that this is in no way related to configuring a
|
||||
lease time. The perceived transition to INIT state is due to client
|
||||
running state -- reinitializing itself -- not due to lease timer
|
||||
activity. That is, it is not safe to assume that a PXELINUX client
|
||||
will abandon its lease when this timer expires.
|
||||
|
||||
6.2. Packet Format
|
||||
|
||||
The Reboot Time Option format is as follows:
|
||||
|
||||
Code Length
|
||||
+--------+--------+--------+--------+--------+--------+
|
||||
| 211 | 4 | Reboot Time |
|
||||
+--------+--------+--------+--------+--------+--------+
|
||||
|
||||
The code for this option is 211. The length is always four. The
|
||||
Reboot Time is a 32-bit (4 byte) integer in network byte order.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Hankins Informational [Page 9]
|
||||
|
||||
RFC 5071 PXELINUX Options December 2007
|
||||
|
||||
|
||||
6.3. Applicability
|
||||
|
||||
Any network bootstrap program in any sufficiently complex networking
|
||||
environment could conceivably enter into such a similar condition,
|
||||
either due to having its IP address stolen out from under it by a
|
||||
rogue client on the network, by being moved between networks where
|
||||
its PXE-derived DHCP lease is no longer valid, or any similar means.
|
||||
|
||||
It seems desirable for any network bootstrap agent to implement an
|
||||
ultimate timeout for it to start over.
|
||||
|
||||
The client may, for example, get different working configuration
|
||||
parameters from a different DHCP server upon restarting.
|
||||
|
||||
6.4. Response to RFC 3942
|
||||
|
||||
The code 211 will be adopted for this purpose.
|
||||
|
||||
6.5. Client and Server Behaviour
|
||||
|
||||
The Reboot Time Option MUST be supplied by the DHCP server if it
|
||||
appears on the Parameter Request List, but MUST also be supplied if
|
||||
the server administrator believed it would later be useful to the
|
||||
client (such as because the server is configured to offer a second-
|
||||
stage boot image that they know will make use of it). The option
|
||||
MUST NOT be supplied if no value has been configured for it, or if it
|
||||
contains a value of zero length.
|
||||
|
||||
The DHCP client MUST only cache this option in a location the second-
|
||||
stage bootloader may access.
|
||||
|
||||
If the value of this option is nonzero, the second-stage bootloader
|
||||
MUST schedule a timeout: after a number of seconds equal to this
|
||||
option's value have passed, the second-stage bootloader MUST reboot
|
||||
the system, ultimately returning the path of execution back to the
|
||||
first-stage bootloader. It MUST NOT reboot the system once the
|
||||
thread of execution has been passed to the host operating system (at
|
||||
which point, this timeout is effectively obviated).
|
||||
|
||||
If the value of this option is zero, the second-stage bootloader MUST
|
||||
NOT schedule such a timeout at all. Any second-stage bootloader that
|
||||
finds it has encountered excessive timeouts attempting to obtain its
|
||||
host operating system SHOULD disconnect itself from the network to
|
||||
wait for operator intervention, but MAY continue to attempt to
|
||||
acquire the host operating system indefinitely.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Hankins Informational [Page 10]
|
||||
|
||||
RFC 5071 PXELINUX Options December 2007
|
||||
|
||||
|
||||
7. Specification Conformance
|
||||
|
||||
To conform to this specification, clients and servers MUST implement
|
||||
the Configuration File, Path Prefix, and Reboot Time options as
|
||||
directed.
|
||||
|
||||
The MAGIC option MAY NOT be implemented, as it has been deprecated.
|
||||
|
||||
8. Security Considerations
|
||||
|
||||
PXE and PXELINUX allow any entity acting as a DHCP server to execute
|
||||
arbitrary code upon a system. At present, no PXE implementation is
|
||||
known to implement authentication mechanisms [7] so that PXE clients
|
||||
can be sure they are receiving configuration information from the
|
||||
correct, authoritative DHCP server.
|
||||
|
||||
The use of TFTP by PXE and PXELINUX also lacks any form of
|
||||
cryptographic signature -- so a 'Man in the Middle' attack may lead
|
||||
to an attacker's code being executed on the client system. Since
|
||||
this is not an encrypted channel, any of the TFTP loaded data may
|
||||
also be exposed (such as in loading a "RAMDISK" image, which contains
|
||||
/etc/passwd or similar information).
|
||||
|
||||
The use of the Ethernet MAC Address as the client's unique identity
|
||||
may allow an attacker who takes on that identity to gain
|
||||
inappropriate access to a client system's network resources by being
|
||||
given by the DHCP server whatever 'keys' are required, in fact, to be
|
||||
the target system (to boot up as though it were the target).
|
||||
|
||||
Great care should be taken to secure PXE and PXELINUX installations,
|
||||
such as by using IP firewalls, to reduce or eliminate these concerns.
|
||||
|
||||
A nearby attacker might feed a "Reboot Time" option value of 1 second
|
||||
to a mass of unsuspecting clients, to effect a Denial Of Service
|
||||
(DoS) upon the DHCP server, but then again it may just as easily
|
||||
supply these clients with rogue second-stage bootloaders that simply
|
||||
transmit a flood of packets.
|
||||
|
||||
This document in and by itself provides no security, nor does it
|
||||
impact existing DCHP security as described in RFC 2131 [3].
|
||||
|
||||
9. IANA Considerations
|
||||
|
||||
IANA has done the following:
|
||||
|
||||
1. Moved DHCPv4 Option code 208 from 'Tentatively Assigned' to
|
||||
'Assigned', referencing this document. IANA has marked this same
|
||||
option code, 208, as Deprecated.
|
||||
|
||||
|
||||
|
||||
Hankins Informational [Page 11]
|
||||
|
||||
RFC 5071 PXELINUX Options December 2007
|
||||
|
||||
|
||||
2. Moved DHCPv4 Option code 209 from 'Tentatively Assigned' to
|
||||
'Assigned', referencing this document.
|
||||
|
||||
3. Moved DHCPv4 Option code 210 from 'Tentatively Assigned' to
|
||||
'Assigned', referencing this document.
|
||||
|
||||
4. Moved DHCPv4 Option code 211 from 'Tentatively Assigned' to
|
||||
'Assigned', referencing this document.
|
||||
|
||||
10. Acknowledgements
|
||||
|
||||
These options were designed and implemented for the PXELINUX project
|
||||
by H. Peter Anvin, and he was instrumental in producing this
|
||||
document. Shane Kerr has also provided feedback that has improved
|
||||
this document.
|
||||
|
||||
11. References
|
||||
|
||||
11.1. Normative References
|
||||
|
||||
[1] Postel, J. and J. Reynolds, "Telnet Protocol Specification",
|
||||
STD 8, RFC 854, May 1983.
|
||||
|
||||
[2] Bradner, S., "Key words for use in RFCs to Indicate Requirement
|
||||
Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
[3] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131,
|
||||
March 1997.
|
||||
|
||||
[4] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor
|
||||
Extensions", RFC 2132, March 1997.
|
||||
|
||||
[5] Droms, R., "Procedures and IANA Guidelines for Definition of New
|
||||
DHCP Options and Message Types", BCP 43, RFC 2939,
|
||||
September 2000.
|
||||
|
||||
11.2. Informative References
|
||||
|
||||
[6] Sollins, K., "The TFTP Protocol (Revision 2)", STD 33, RFC 1350,
|
||||
July 1992.
|
||||
|
||||
[7] Droms, R. and W. Arbaugh, "Authentication for DHCP Messages",
|
||||
RFC 3118, June 2001.
|
||||
|
||||
[8] Volz, B., "Reclassifying Dynamic Host Configuration Protocol
|
||||
version 4 (DHCPv4) Options", RFC 3942, November 2004.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Hankins Informational [Page 12]
|
||||
|
||||
RFC 5071 PXELINUX Options December 2007
|
||||
|
||||
|
||||
Author's Address
|
||||
|
||||
David W. Hankins
|
||||
Internet Systems Consortium, Inc.
|
||||
950 Charter Street
|
||||
Redwood City, CA 94063
|
||||
US
|
||||
|
||||
Phone: +1 650 423 1307
|
||||
EMail: David_Hankins@isc.org
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Hankins Informational [Page 13]
|
||||
|
||||
RFC 5071 PXELINUX Options December 2007
|
||||
|
||||
|
||||
Full Copyright Statement
|
||||
|
||||
Copyright (C) The IETF Trust (2007).
|
||||
|
||||
This document is subject to the rights, licenses and restrictions
|
||||
contained in BCP 78, and except as set forth therein, the authors
|
||||
retain all their rights.
|
||||
|
||||
This document and the information contained herein are provided on an
|
||||
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
|
||||
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
|
||||
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
|
||||
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
Intellectual Property
|
||||
|
||||
The IETF takes no position regarding the validity or scope of any
|
||||
Intellectual Property Rights or other rights that might be claimed to
|
||||
pertain to the implementation or use of the technology described in
|
||||
this document or the extent to which any license under such rights
|
||||
might or might not be available; nor does it represent that it has
|
||||
made any independent effort to identify any such rights. Information
|
||||
on the procedures with respect to rights in RFC documents can be
|
||||
found in BCP 78 and BCP 79.
|
||||
|
||||
Copies of IPR disclosures made to the IETF Secretariat and any
|
||||
assurances of licenses to be made available, or the result of an
|
||||
attempt made to obtain a general license or permission for the use of
|
||||
such proprietary rights by implementers or users of this
|
||||
specification can be obtained from the IETF on-line IPR repository at
|
||||
http://www.ietf.org/ipr.
|
||||
|
||||
The IETF invites any interested party to bring to its attention any
|
||||
copyrights, patents or patent applications, or other proprietary
|
||||
rights that may cover technology that may be required to implement
|
||||
this standard. Please address the information to the IETF at
|
||||
ietf-ipr@ietf.org.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Hankins Informational [Page 14]
|
||||
|
||||
149
config/release/3rdparty/syslinux/doc/sdi.txt
vendored
149
config/release/3rdparty/syslinux/doc/sdi.txt
vendored
@@ -1,149 +0,0 @@
|
||||
SDI files
|
||||
|
||||
|
||||
Syslinux supports SDI files ( *.sdi ).
|
||||
|
||||
Features:
|
||||
* Support for gzipped SDI images
|
||||
* When used with gpxelinux.0, images can be downloaded by HTTP or FTP,
|
||||
leading to fastest boot times.
|
||||
|
||||
"System Deployment Image" is a file format created by Microsoft and mostly used
|
||||
in its products to provide in a single file a boot loader, an OS loader
|
||||
(like NTLDR) and a disk or partition image to boot from it without any
|
||||
other installed program. This is typically used in a PXE environment to boot
|
||||
embedded Windows versions without boot disk support.
|
||||
|
||||
The support of SDI images in Syslinux is based on a white
|
||||
paper from Saad Syed. You can find the paper here:
|
||||
|
||||
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxpesp1/html/ram_sdi.asp
|
||||
|
||||
SDI support has been only been tested with SDI v1.0 with Windows XP Embedded
|
||||
images and may not work with later versions or alternative uses.
|
||||
|
||||
|
||||
++++ Supported SDI images ++++
|
||||
|
||||
To make a SDI image supported by pxelinux/isolinux/syslinux, you need to
|
||||
follow the steps below (detailed instructions are in the white paper
|
||||
cited above):
|
||||
|
||||
You need to install "Windows Embedded Studio" and to run the
|
||||
"Remote Boot Service Setup".
|
||||
|
||||
1) Create a new SDI file (eg: sdimgr /new xpe.sdi).
|
||||
|
||||
2) Before importing your target partition, add the following files
|
||||
in the root folder:
|
||||
* ntdetect.com
|
||||
* boot.ini
|
||||
Its content should be:
|
||||
[boot loader]
|
||||
default=ramdisk(0)\WINDOWS
|
||||
[operating systems]
|
||||
ramdisk(0)\WINDOWS="Windows XPE From RAM" /fastdetect
|
||||
(you can customize the name and add options like /debug)
|
||||
|
||||
Note: Your partition may be compressed (using compressed NTFS), but these two
|
||||
files need to be uncompressed.
|
||||
|
||||
3) Import the partition in the SDI file (eg: sdimgr xpe.sdi /readpart:D:).
|
||||
The size of the partition must be less than 500 MB.
|
||||
|
||||
4) Import the boot program STARTROM.COM
|
||||
(eg: sdimgr xpe.sdi /import:BOOT,0,C:\Program Files\Windows Embedded\Remote Boot Service\Downloads\startrom.com)
|
||||
|
||||
5) Import the nt loader NTLDR in the SDI file
|
||||
(eg: sdimgr xpe.sdi /import:LOAD,0,C:\Program Files\Windows Embedded\Remote Boot Service\Downloads\ntldr)
|
||||
|
||||
Note: only the version of NTLDR provided by Remote Boot Service Setup
|
||||
and located in this directory has been tested. According to
|
||||
"http://skolk.livejournal.com/667.html", "osloader.exe" from retail XP
|
||||
can also be used to replace this NTLDR version.
|
||||
|
||||
6) Pack the SDI file (eg: sdimgr xpe.sdi /pack)
|
||||
|
||||
7) Gzip your image
|
||||
If you want to speed the download time, you can gzip the image as it will
|
||||
be uncompressed by syslinux during the loading. You can use some programs
|
||||
like ntfsclone ("http://www.linux-ntfs.org/doku.php?id=ntfsclone") to
|
||||
remove unused blocks from the NTFS filesystem before deploying your image.
|
||||
|
||||
8) You are now ready to boot your image.
|
||||
Unlike the traditional way of using SDI images (startrom.n12), you don't need
|
||||
other files than your SDI image in the tftpboot (for pxelinux), the CD
|
||||
(for isolinux), or the hard disk for syslinux.
|
||||
|
||||
* You can use the usual options of pxelinux/isolinux/syslinux (config file,
|
||||
config path, reboot time...)
|
||||
|
||||
For example, a simple configuration with pxelinux:
|
||||
/tftpboot/xpe.sdi
|
||||
/tftpboot/pxelinux.0
|
||||
/tftpboot/pxelinux.cfg/default with the following content:
|
||||
|
||||
DEFAULT 0
|
||||
label 0 [WinXpe]
|
||||
KERNEL sdi.c32
|
||||
APPEND xpe.sdi
|
||||
|
||||
|
||||
++++ Error messages ++++
|
||||
|
||||
* No $SDI signature in file
|
||||
A SDI image should begin by a signature "$SDI", the signature has not
|
||||
been found in your file. Perhaps your file is corrupted or has not been created
|
||||
correctly. Run sdimgr on it to see if everything is correct.
|
||||
|
||||
* No BOOT BLOB in image
|
||||
You have to import a boot program (eg: startrom.com) when you make
|
||||
your SDI image (see above). The offset of this program in the SDI file
|
||||
is in the SDI header (begining of the file). However, the offset
|
||||
found in your SDI file is null.
|
||||
You probably forgot to include the boot program. Run the sdimgr program
|
||||
and look if you see a line like:
|
||||
BOOT 0x00000000.00001000 0x00000000.00005EC2...
|
||||
--------
|
||||
This is the
|
||||
offset and
|
||||
should not
|
||||
be null
|
||||
|
||||
* BOOT BLOB is empty
|
||||
See above. The size of your boot program included in the SDI
|
||||
is null. You probably imported a corrupted version of startrom.com.
|
||||
Run sdimgr and check the size in the following line:
|
||||
BOOT 0x00000000.00001000 0x00000000.00005EC2...
|
||||
--------
|
||||
this is the
|
||||
size and
|
||||
should not
|
||||
be null
|
||||
|
||||
* BOOT BLOB extends beyond file
|
||||
You have a BOOT BLOB in your SDI file, but its size is invalid
|
||||
because its goes beyond the total image size. Check the tools you used
|
||||
to build the image file.
|
||||
|
||||
* BOOT BLOB too large for memory
|
||||
Your BOOT BLOB seems correct, however there is not enough memory
|
||||
to load it. Increase your RAM or reduce the SDI size. This is a very
|
||||
abnormal situation as the BOOT BLOB is usually very small. Your SDI
|
||||
file might be corrupted.
|
||||
|
||||
* Image too large for memory
|
||||
Your SDI file seems correct, however there is not enough memory
|
||||
to load it. Increase your RAM or reduce the SDI size.
|
||||
|
||||
* SDI header is corrupted
|
||||
Your SDI file seems correct, but its header contains a checksum
|
||||
that is invalid. You most likely have a corrupted SDI file.
|
||||
|
||||
|
||||
++++ Warning messages ++++
|
||||
|
||||
* Warning: unknown SDI version
|
||||
You are using a newer version of SDI than the one with which this program
|
||||
has been tested. It may not work. Please give feedback and provide your
|
||||
SDI version.
|
||||
790
config/release/3rdparty/syslinux/doc/syslinux.txt
vendored
790
config/release/3rdparty/syslinux/doc/syslinux.txt
vendored
@@ -1,790 +0,0 @@
|
||||
The Syslinux Project
|
||||
|
||||
A suite of bootloaders for Linux
|
||||
|
||||
Copyright 1994-2011 H. Peter Anvin and contributors
|
||||
|
||||
This program is provided under the terms of the GNU General Public
|
||||
License, version 2 or, at your option, any later version. There is no
|
||||
warranty, neither expressed nor implied, to the function of this
|
||||
program. Please see the included file COPYING for details.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Syslinux now has a home page at http://syslinux.zytor.com/
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
The Syslinux suite contains the following boot loaders
|
||||
("derivatives"), for their respective boot media:
|
||||
|
||||
SYSLINUX - MS-DOS/Windows FAT filesystem
|
||||
PXELINUX - PXE network booting
|
||||
ISOLINUX - ISO9660 CD-ROM
|
||||
EXTLINUX - Linux ext2/ext3 filesystem
|
||||
|
||||
For historical reasons, some of the sections in this document applies
|
||||
to the FAT loader (SYSLINUX) only; see pxelinux.txt, isolinux.txt and
|
||||
extlinux.txt for what differs in these versions. The all-caps term
|
||||
"SYSLINUX" generally refers to the FAT loader, whereas "Syslinux"
|
||||
refers to the project as a whole.
|
||||
|
||||
Help with cleaning up the docs would be greatly appreciated.
|
||||
|
||||
|
||||
++++ Options ++++
|
||||
|
||||
These are the options common to all versions of Syslinux:
|
||||
|
||||
-s Safe, slow, stupid; uses simpler code that boots better
|
||||
-f Force installing
|
||||
-r Raid mode. If boot fails, tell the BIOS to boot the next
|
||||
device in the boot sequence (usually the next hard disk)
|
||||
instead of stopping with an error message.
|
||||
This is useful for RAID-1 booting.
|
||||
|
||||
These are only in the Windows version:
|
||||
|
||||
-m Mbr; install a bootable MBR sector to the beginning of the
|
||||
drive.
|
||||
-a Active; marks the partition used active (=bootable)
|
||||
|
||||
|
||||
++++ CREATING A BOOTABLE LINUX FLOPPY +++
|
||||
|
||||
In order to create a bootable Linux floppy using SYSLINUX, prepare a
|
||||
normal MS-DOS formatted floppy. Copy one or more Linux kernel files to
|
||||
it, then execute the DOS command:
|
||||
|
||||
syslinux [-sfrma][-d directory] a: [bootsecfile]
|
||||
|
||||
(or whichever drive letter is appropriate; the [] meaning optional.)
|
||||
|
||||
Use "syslinux.com" (in the dos subdirectory of the distribution) for
|
||||
plain DOS (MS-DOS, DR-DOS, PC-DOS, FreeDOS...) or Win9x/ME.
|
||||
|
||||
Use "syslinux.exe" (in the win32 subdirectory of the distribution) for
|
||||
WinNT/2000/XP.
|
||||
|
||||
Under Linux, execute the command:
|
||||
|
||||
syslinux [-sfr][-d directory][-o offset] /dev/fd0
|
||||
|
||||
(or, again, whichever device is the correct one.)
|
||||
|
||||
This will alter the boot sector on the disk and copy a file named
|
||||
LDLINUX.SYS into its root directory (or a subdirectory, if the -d
|
||||
option is specified.)
|
||||
|
||||
The -s option, if given, will install a "safe, slow and stupid"
|
||||
version of SYSLINUX. This version may work on some very buggy BIOSes
|
||||
on which SYSLINUX would otherwise fail. If you find a machine on
|
||||
which the -s option is required to make it boot reliably, please send
|
||||
as much info about your machine as you can, and include the failure
|
||||
mode.
|
||||
|
||||
The -o option is used with a disk image file and specifies the byte
|
||||
offset of the filesystem image in the file.
|
||||
|
||||
For the DOS and Windows installers, the -m and -a options can be used
|
||||
on hard drives to write a Master Boot Record (MBR), and to mark the
|
||||
specific partition active.
|
||||
|
||||
If the Shift or Alt keys are held down during boot, or the Caps or Scroll
|
||||
locks are set, Syslinux will display a LILO-style "boot:" prompt. The
|
||||
user can then type a kernel file name followed by any kernel parameters.
|
||||
The Syslinux loader does not need to know about the kernel file in
|
||||
advance; all that is required is that it is a file located in the root
|
||||
directory on the disk.
|
||||
|
||||
There are two versions of the Linux installer; one in the "mtools"
|
||||
directory which requires no special privilege (other than write
|
||||
permission to the device where you are installing) but requires the
|
||||
mtools program suite to be available, and one in the "unix" directory
|
||||
which requires root privilege.
|
||||
|
||||
|
||||
++++ CONFIGURATION FILE ++++
|
||||
|
||||
All options here apply to PXELINUX, ISOLINUX and EXTLINUX as well as
|
||||
SYSLINUX unless otherwise noted. See the respective .txt files.
|
||||
|
||||
All the configurable defaults in SYSLINUX can be changed by putting a
|
||||
file called "syslinux.cfg" in the root directory of the boot disk.
|
||||
|
||||
Starting with version 3.35, the configuration file can also be in
|
||||
either the /boot/syslinux or /syslinux directories (searched in that
|
||||
order.) If that is the case, then all filenames are assumed to be
|
||||
relative to that same directory, unless preceded with a slash or
|
||||
backslash.
|
||||
|
||||
The configuration file is a text file in either UNIX or DOS format,
|
||||
containing one or more of the following items, each on its own line with
|
||||
optional leading whitespace. Case is insensitive for keywords; upper
|
||||
case is used here to indicate that a word should be typed verbatim.
|
||||
|
||||
#comment
|
||||
A comment line.
|
||||
|
||||
INCLUDE filename
|
||||
Inserts the contents of another file at this point in the
|
||||
configuration file. Files can currently be nested up to 16
|
||||
levels deep, but it is not guaranteed that more than 8 levels
|
||||
will be supported in the future.
|
||||
|
||||
DEFAULT kernel options...
|
||||
Sets the default command line. If Syslinux boots automatically,
|
||||
it will act just as if the entries after DEFAULT had been typed
|
||||
in at the "boot:" prompt.
|
||||
|
||||
If no configuration file is present, or no DEFAULT entry is
|
||||
present in the config file, an error message is displayed and
|
||||
the boot: prompt is shown.
|
||||
|
||||
UI module options...
|
||||
Selects a specific user interface module (typically menu.c32
|
||||
or vesamenu.c32). The command-line interface treats this as a
|
||||
directive that overrides the DEFAULT and PROMPT directives.
|
||||
|
||||
APPEND options...
|
||||
Add one or more options to the kernel command line. These are
|
||||
added both for automatic and manual boots. The options are
|
||||
added at the very beginning of the kernel command line,
|
||||
usually permitting explicitly entered kernel options to override
|
||||
them. This is the equivalent of the LILO "append" option.
|
||||
|
||||
IPAPPEND flag_val [PXELINUX only]
|
||||
The IPAPPEND option is available only on PXELINUX. The
|
||||
flag_val is an OR of the following options:
|
||||
|
||||
1: indicates that an option of the following format
|
||||
should be generated and added to the kernel command line:
|
||||
|
||||
ip=<client-ip>:<boot-server-ip>:<gw-ip>:<netmask>
|
||||
|
||||
... based on the input from the DHCP/BOOTP or PXE boot server.
|
||||
|
||||
NOTE: The use of this option is no substitute for running a
|
||||
DHCP client in the booted system. Without regular renewals,
|
||||
the lease acquired by the PXE BIOS will expire, making the
|
||||
IP address available for reuse by the DHCP server.
|
||||
|
||||
2: indicates that an option of the following format
|
||||
should be generated and added to the kernel command line:
|
||||
|
||||
BOOTIF=<hardware-address-of-boot-interface>
|
||||
|
||||
... in dash-separated hexadecimal with leading hardware type
|
||||
(same as for the configuration file; see pxelinux.txt.)
|
||||
|
||||
This allows an initrd program to determine from which
|
||||
interface the system booted.
|
||||
|
||||
4: indicates that an option of the following format
|
||||
should be generated and added to the kernel command line:
|
||||
|
||||
SYSUUID=<system uuid>
|
||||
|
||||
... in lower case hexadecimal in the format normally used for
|
||||
UUIDs (same as for the configuration file; see pxelinux.txt.)
|
||||
|
||||
LABEL label
|
||||
KERNEL image
|
||||
APPEND options...
|
||||
IPAPPEND flag_val [PXELINUX only]
|
||||
Indicates that if "label" is entered as the kernel to boot,
|
||||
Syslinux should instead boot "image", and the specified APPEND
|
||||
and IPAPPEND options should be used instead of the ones
|
||||
specified in the global section of the file (before the first
|
||||
LABEL command.) The default for "image" is the same as
|
||||
"label", and if no APPEND is given the default is to use the
|
||||
global entry (if any).
|
||||
|
||||
Starting with version 3.62, the number of LABEL statements is
|
||||
virtually unlimited.
|
||||
|
||||
Note that LILO uses the syntax:
|
||||
image = mykernel
|
||||
label = mylabel
|
||||
append = "myoptions"
|
||||
|
||||
... whereas Syslinux uses the syntax:
|
||||
label mylabel
|
||||
kernel mykernel
|
||||
append myoptions
|
||||
|
||||
Note: The "kernel" doesn't have to be a Linux kernel; it can
|
||||
be a boot sector or a COMBOOT file (see below.)
|
||||
|
||||
Since version 3.32 label names are no longer mangled into DOS
|
||||
format (for SYSLINUX.)
|
||||
|
||||
The following commands are available after a LABEL statement:
|
||||
|
||||
LINUX image - Linux kernel image (default)
|
||||
BOOT image - Bootstrap program (.bs, .bin)
|
||||
BSS image - BSS image (.bss)
|
||||
PXE image - PXE Network Bootstrap Program (.0)
|
||||
FDIMAGE image - Floppy disk image (.img)
|
||||
COMBOOT image - COMBOOT program (.com, .cbt)
|
||||
COM32 image - COM32 program (.c32)
|
||||
CONFIG image - New configuration file
|
||||
Using one of these keywords instead of KERNEL forces the
|
||||
filetype, regardless of the filename.
|
||||
|
||||
CONFIG means restart the boot loader using a different
|
||||
configuration file. The configuration file is read, the
|
||||
working directory is changed (if specified via an APPEND), then
|
||||
the configuration file is parsed.
|
||||
|
||||
APPEND -
|
||||
Append nothing. APPEND with a single hyphen as argument in a
|
||||
LABEL section can be used to override a global APPEND.
|
||||
|
||||
LOCALBOOT type
|
||||
Attempt a different local boot method. The special value -1
|
||||
causes the boot loader to report failure to the BIOS, which, on
|
||||
recent BIOSes, should mean that the next boot device in the
|
||||
boot sequence should be activated. Values other than those
|
||||
documented may produce undesired results.
|
||||
|
||||
On PXELINUX, "type" 0 means perform a normal boot. "type" 4
|
||||
will perform a local boot with the Universal Network Driver
|
||||
Interface (UNDI) driver still resident in memory. Finally,
|
||||
"type" 5 will perform a local boot with the entire PXE
|
||||
stack, including the UNDI driver, still resident in memory.
|
||||
All other values are undefined. If you don't know what the
|
||||
UNDI or PXE stacks are, don't worry -- you don't want them,
|
||||
just specify 0.
|
||||
|
||||
On ISOLINUX, the "type" specifies the local drive number to
|
||||
boot from; 0x00 is the primary floppy drive and 0x80 is the
|
||||
primary hard drive.
|
||||
|
||||
INITRD initrd_file
|
||||
Starting with version 3.71, an initrd can be specified in a
|
||||
separate statement (INITRD) instead of as part of the APPEND
|
||||
statement; this functionally appends "initrd=initrd_file" to
|
||||
the kernel command line.
|
||||
|
||||
It supports multiple filenames separated by commas.
|
||||
This is mostly useful for initramfs, which can be composed of
|
||||
multiple separate cpio or cpio.gz archives.
|
||||
Note: all files except the last one are zero-padded to a
|
||||
4K page boundary. This should not affect initramfs.
|
||||
|
||||
IMPLICIT flag_val
|
||||
If flag_val is 0, do not load a kernel image unless it has been
|
||||
explicitly named in a LABEL statement. The default is 1.
|
||||
|
||||
ALLOWOPTIONS flag_val
|
||||
If flag_val is 0, the user is not allowed to specify any
|
||||
arguments on the kernel command line. The only options
|
||||
recognized are those specified in an APPEND statement. The
|
||||
default is 1.
|
||||
|
||||
TIMEOUT timeout
|
||||
Indicates how long to wait at the boot: prompt until booting
|
||||
automatically, in units of 1/10 s. The timeout is cancelled as
|
||||
soon as the user types anything on the keyboard, the assumption
|
||||
being that the user will complete the command line already
|
||||
begun. A timeout of zero will disable the timeout completely,
|
||||
this is also the default.
|
||||
|
||||
TOTALTIMEOUT timeout
|
||||
Indicates how long to wait until booting automatically, in
|
||||
units of 1/10 s. This timeout is *not* cancelled by user
|
||||
input, and can thus be used to deal with serial port glitches
|
||||
or "the user walked away" type situations. A timeout of zero
|
||||
will disable the timeout completely, this is also the default.
|
||||
|
||||
Both TIMEOUT and TOTALTIMEOUT can be used together, for
|
||||
example:
|
||||
|
||||
# Wait 5 seconds unless the user types something, but
|
||||
# always boot after 15 minutes.
|
||||
TIMEOUT 50
|
||||
TOTALTIMEOUT 9000
|
||||
|
||||
ONTIMEOUT kernel options...
|
||||
Sets the command line invoked on a timeout. Normally this is
|
||||
the same thing as invoked by "DEFAULT". If this is specified,
|
||||
then "DEFAULT" is used only if the user presses <Enter> to
|
||||
boot.
|
||||
|
||||
ONERROR kernel options...
|
||||
If a kernel image is not found (either due to it not existing,
|
||||
or because IMPLICIT is set), run the specified command. The
|
||||
faulty command line is appended to the specified options, so
|
||||
if the ONERROR directive reads as:
|
||||
|
||||
ONERROR xyzzy plugh
|
||||
|
||||
... and the command line as entered by the user is:
|
||||
|
||||
foo bar baz
|
||||
|
||||
... Syslinux will execute the following as if entered by the
|
||||
user:
|
||||
|
||||
xyzzy plugh foo bar baz
|
||||
|
||||
SERIAL port [[baudrate] flowcontrol]
|
||||
Enables a serial port to act as the console. "port" is a
|
||||
number (0 = /dev/ttyS0 = COM1, etc.) or an I/O port address
|
||||
(e.g. 0x3F8); if "baudrate" is omitted, the baud rate defaults
|
||||
to 9600 bps. The serial parameters are hardcoded to be 8
|
||||
bits, no parity, 1 stop bit.
|
||||
|
||||
"flowcontrol" is a combination of the following bits:
|
||||
0x001 - Assert DTR
|
||||
0x002 - Assert RTS
|
||||
0x008 - Enable interrupts
|
||||
0x010 - Wait for CTS assertion
|
||||
0x020 - Wait for DSR assertion
|
||||
0x040 - Wait for RI assertion
|
||||
0x080 - Wait for DCD assertion
|
||||
0x100 - Ignore input unless CTS asserted
|
||||
0x200 - Ignore input unless DSR asserted
|
||||
0x400 - Ignore input unless RI asserted
|
||||
0x800 - Ignore input unless DCD asserted
|
||||
|
||||
All other bits are reserved.
|
||||
|
||||
Typical values are:
|
||||
|
||||
0 - No flow control (default)
|
||||
0x303 - Null modem cable detect
|
||||
0x013 - RTS/CTS flow control
|
||||
0x813 - RTS/CTS flow control, modem input
|
||||
0x023 - DTR/DSR flow control
|
||||
0x083 - DTR/DCD flow control
|
||||
|
||||
For the SERIAL directive to be guaranteed to work properly, it
|
||||
should be the first directive in the configuration file.
|
||||
|
||||
NOTE: "port" values from 0 to 3 means the first four serial
|
||||
ports detected by the BIOS. They may or may not correspond to
|
||||
the legacy port values 0x3F8, 0x2F8, 0x3E8, 0x2E8.
|
||||
|
||||
Enabling interrupts (setting the 0x008 bit) may give better
|
||||
responsiveness without setting the NOHALT option, but could
|
||||
potentially cause problems with buggy BIOSes.
|
||||
|
||||
NOHALT flag_val
|
||||
If flag_val is 1, don't halt the processor while idle.
|
||||
Halting the processor while idle significantly reduces the
|
||||
power consumption, but can cause poor responsiveness to the
|
||||
serial console, especially when using scripts to drive the
|
||||
serial console, as opposed to human interaction.
|
||||
|
||||
CONSOLE flag_val
|
||||
If flag_val is 0, disable output to the normal video console.
|
||||
If flag_val is 1, enable output to the video console (this is
|
||||
the default.)
|
||||
|
||||
Some BIOSes try to forward this to the serial console and
|
||||
sometimes make a total mess thereof, so this option lets you
|
||||
disable the video console on these systems.
|
||||
|
||||
FONT filename
|
||||
Load a font in .psf format before displaying any output
|
||||
(except the copyright line, which is output as ldlinux.sys
|
||||
itself is loaded.) Syslinux only loads the font onto the
|
||||
video card; if the .psf file contains a Unicode table it is
|
||||
ignored. This only works on EGA and VGA cards; hopefully it
|
||||
should do nothing on others.
|
||||
|
||||
KBDMAP keymap
|
||||
Install a simple keyboard map. The keyboard remapper used is
|
||||
*very* simplistic (it simply remaps the keycodes received from
|
||||
the BIOS, which means that only the key combinations relevant
|
||||
in the default layout -- usually U.S. English -- can be
|
||||
mapped) but should at least help people with AZERTY keyboard
|
||||
layout and the locations of = and , (two special characters
|
||||
used heavily on the Linux kernel command line.)
|
||||
|
||||
The included program keytab-lilo.pl from the LILO distribution
|
||||
can be used to create such keymaps. The file keytab-lilo.txt
|
||||
contains the documentation for this program.
|
||||
|
||||
DISPLAY filename
|
||||
Displays the indicated file on the screen at boot time (before
|
||||
the boot: prompt, if displayed). Please see the section below
|
||||
on DISPLAY files.
|
||||
|
||||
NOTE: If the file is missing, this option is simply ignored.
|
||||
|
||||
SAY message
|
||||
Prints the message on the screen.
|
||||
|
||||
PROMPT flag_val
|
||||
If flag_val is 0, display the boot: prompt only if the Shift or Alt
|
||||
key is pressed, or Caps Lock or Scroll lock is set (this is the
|
||||
default). If flag_val is 1, always display the boot: prompt.
|
||||
|
||||
NOESCAPE flag_val
|
||||
If flag_val is set to 1, ignore the Shift/Alt/Caps Lock/Scroll
|
||||
Lock escapes. Use this (together with PROMPT 0) to force the
|
||||
default boot alternative.
|
||||
|
||||
NOCOMPLETE flag_val
|
||||
If flag_val is set to 1, the Tab key does not display labels
|
||||
at the boot: prompt.
|
||||
|
||||
F1 filename
|
||||
F2 filename
|
||||
...etc...
|
||||
F9 filename
|
||||
F10 filename
|
||||
F11 filename
|
||||
F12 filename
|
||||
Displays the indicated file on the screen when a function key is
|
||||
pressed at the boot: prompt. This can be used to implement
|
||||
pre-boot online help (presumably for the kernel command line
|
||||
options.) Please see the section below on DISPLAY files.
|
||||
|
||||
When using the serial console, press <Ctrl-F><digit> to get to
|
||||
the help screens, e.g. <Ctrl-F><2> to get to the F2 screen.
|
||||
For F10-F12, hit <Ctrl-F><A>, <Ctrl-F>B, <Ctrl-F>C. For
|
||||
compatibility with earlier versions, F10 can also be entered as
|
||||
<Ctrl-F>0.
|
||||
|
||||
Blank lines are ignored.
|
||||
|
||||
Note that the configuration file is not completely decoded. Syntax
|
||||
different from the one described above may still work correctly in this
|
||||
version of Syslinux, but may break in a future one.
|
||||
|
||||
|
||||
++++ DISPLAY FILE FORMAT ++++
|
||||
|
||||
DISPLAY and function-key help files are text files in either DOS or UNIX
|
||||
format (with or without <CR>). In addition, the following special codes
|
||||
are interpreted:
|
||||
|
||||
<FF> <FF> = <Ctrl-L> = ASCII 12
|
||||
Clear the screen, home the cursor. Note that the screen is
|
||||
filled with the current display color.
|
||||
|
||||
<SI><bg><fg> <SI> = <Ctrl-O> = ASCII 15
|
||||
Set the display colors to the specified background and
|
||||
foreground colors, where <bg> and <fg> are hex digits,
|
||||
corresponding to the standard PC display attributes:
|
||||
|
||||
0 = black 8 = dark grey
|
||||
1 = dark blue 9 = bright blue
|
||||
2 = dark green a = bright green
|
||||
3 = dark cyan b = bright cyan
|
||||
4 = dark red c = bright red
|
||||
5 = dark purple d = bright purple
|
||||
6 = brown e = yellow
|
||||
7 = light grey f = white
|
||||
|
||||
Picking a bright color (8-f) for the background results in the
|
||||
corresponding dark color (0-7), with the foreground flashing.
|
||||
|
||||
Colors are not visible over the serial console.
|
||||
|
||||
<CAN>filename<newline> <CAN> = <Ctrl-X> = ASCII 24
|
||||
If a VGA display is present, enter graphics mode and display
|
||||
the graphic included in the specified file. The file format
|
||||
is an ad hoc format called LSS16; the included Perl program
|
||||
"ppmtolss16" can be used to produce these images. This Perl
|
||||
program also includes the file format specification.
|
||||
|
||||
The image is displayed in 640x480 16-color mode. Once in
|
||||
graphics mode, the display attributes (set by <SI> code
|
||||
sequences) work slightly differently: the background color is
|
||||
ignored, and the foreground colors are the 16 colors specified
|
||||
in the image file. For that reason, ppmtolss16 allows you to
|
||||
specify that certain colors should be assigned to specific
|
||||
color indicies.
|
||||
|
||||
Color indicies 0 and 7, in particular, should be chosen with
|
||||
care: 0 is the background color, and 7 is the color used for
|
||||
the text printed by Syslinux itself.
|
||||
|
||||
<EM> <EM> = <Ctrl-Y> = ASCII 25
|
||||
If we are currently in graphics mode, return to text mode.
|
||||
|
||||
<DLE>..<ETB> <Ctrl-P>..<Ctrl-W> = ASCII 16-23
|
||||
These codes can be used to select which modes to print a
|
||||
certain part of the message file in. Each of these control
|
||||
characters select a specific set of modes (text screen,
|
||||
graphics screen, serial port) for which the output is actually
|
||||
displayed:
|
||||
|
||||
Character Text Graph Serial
|
||||
------------------------------------------------------
|
||||
<DLE> = <Ctrl-P> = ASCII 16 No No No
|
||||
<DC1> = <Ctrl-Q> = ASCII 17 Yes No No
|
||||
<DC2> = <Ctrl-R> = ASCII 18 No Yes No
|
||||
<DC3> = <Ctrl-S> = ASCII 19 Yes Yes No
|
||||
<DC4> = <Ctrl-T> = ASCII 20 No No Yes
|
||||
<NAK> = <Ctrl-U> = ASCII 21 Yes No Yes
|
||||
<SYN> = <Ctrl-V> = ASCII 22 No Yes Yes
|
||||
<ETB> = <Ctrl-W> = ASCII 23 Yes Yes Yes
|
||||
|
||||
For example:
|
||||
|
||||
<DC1>Text mode<DC2>Graphics mode<DC4>Serial port<ETB>
|
||||
|
||||
... will actually print out which mode the console is in!
|
||||
|
||||
<SUB> <SUB> = <Ctrl-Z> = ASCII 26
|
||||
End of file (DOS convention).
|
||||
|
||||
<BEL> <BEL> = <Ctrl-G> = ASCII 7
|
||||
Beep the speaker.
|
||||
|
||||
|
||||
++++ COMMAND LINE KEYSTROKES ++++
|
||||
|
||||
The command line prompt supports the following keystrokes:
|
||||
|
||||
<Enter> boot specified command line
|
||||
<BackSpace> erase one character
|
||||
<Ctrl-U> erase the whole line
|
||||
<Ctrl-V> display the current Syslinux version
|
||||
<Ctrl-W> erase one word
|
||||
<Ctrl-X> force text mode
|
||||
<Tab> list matching labels
|
||||
<F1>..<F12> help screens (if configured)
|
||||
<Ctrl-F><digit> equivalent to F1..F10
|
||||
<Ctrl-C> interrupt boot in progress
|
||||
<Esc> interrupt boot in progress
|
||||
<Ctrl-N> display network information (PXELINUX only)
|
||||
|
||||
|
||||
++++ COMBOOT IMAGES AND OTHER OPERATING SYSTEMS ++++
|
||||
|
||||
This version of Syslinux supports chain loading of other operating
|
||||
systems (such as MS-DOS and its derivatives, including Windows 95/98),
|
||||
as well as COMBOOT-style standalone executables (a subset of DOS .COM
|
||||
files; see separate section below.)
|
||||
|
||||
Chain loading requires the boot sector of the foreign operating system
|
||||
to be stored in a file in the root directory of the filesystem.
|
||||
Because neither Linux kernels, boot sector images, nor COMBOOT files
|
||||
have reliable magic numbers, Syslinux will look at the file extension.
|
||||
The following extensions are recognized (case insensitive):
|
||||
|
||||
none or other Linux kernel image
|
||||
.0 PXE bootstrap program (NBP) [PXELINUX only]
|
||||
.bin "CD boot sector" [ISOLINUX only]
|
||||
.bs Boot sector [SYSLINUX only]
|
||||
.bss Boot sector, DOS superblock will be patched in [SYSLINUX only]
|
||||
.c32 COM32 image (32-bit COMBOOT)
|
||||
.cbt COMBOOT image (not runnable from DOS)
|
||||
.com COMBOOT image (runnable from DOS)
|
||||
.img Disk image [ISOLINUX only]
|
||||
|
||||
For filenames given on the command line, Syslinux will search for the
|
||||
file by adding extensions in the order listed above if the plain
|
||||
filename is not found. Filenames in KERNEL statements must be fully
|
||||
qualified.
|
||||
|
||||
If this is specified with one of the keywords LINUX, BOOT, BSS,
|
||||
FDIMAGE, COMBOOT, COM32, or CONFIG instead of KERNEL, the filetype is
|
||||
considered to be the one specified regardless of the filename.
|
||||
|
||||
|
||||
++++ BOOTING DOS (OR OTHER SIMILAR OPERATING SYSTEMS) ++++
|
||||
|
||||
This section applies to SYSLINUX only, not to PXELINUX or ISOLINUX.
|
||||
See isolinux.txt for an equivalent procedure for ISOLINUX.
|
||||
|
||||
This is the recommended procedure for creating a SYSLINUX disk that
|
||||
can boot either DOS or Linux. This example assumes the drive is A: in
|
||||
DOS and /dev/fd0 in Linux; for other drives, substitute the
|
||||
appropriate drive designator.
|
||||
|
||||
---- Linux procedure ----
|
||||
|
||||
1. Make a DOS bootable disk. This can be done either by specifying
|
||||
the /s option when formatting the disk in DOS, or by running the
|
||||
DOS command SYS (this can be done under DOSEMU if DOSEMU has
|
||||
direct device access to the relevant drive):
|
||||
|
||||
format a: /s
|
||||
or
|
||||
sys a:
|
||||
|
||||
2. Boot Linux. Copy the DOS boot sector from the disk into a file:
|
||||
|
||||
dd if=/dev/fd0 of=dos.bss bs=512 count=1
|
||||
|
||||
3. Run SYSLINUX on the disk:
|
||||
|
||||
syslinux /dev/fd0
|
||||
|
||||
4. Mount the disk and copy the DOS boot sector file to it. The file
|
||||
*must* have extension .bss:
|
||||
|
||||
mount -t msdos /dev/fd0 /mnt
|
||||
cp dos.bss /mnt
|
||||
|
||||
5. Copy the Linux kernel image(s), initrd(s), etc to the disk, and
|
||||
create/edit syslinux.cfg and help files if desired:
|
||||
|
||||
cp vmlinux /mnt
|
||||
cp initrd.gz /mnt
|
||||
|
||||
6. Unmount the disk (if applicable.)
|
||||
|
||||
umount /mnt
|
||||
|
||||
---- DOS/Windows procedure ----
|
||||
|
||||
To make this installation in DOS only, you need the utility copybs.com
|
||||
(included with Syslinux) as well as the syslinux.com installer. If
|
||||
you are on an WinNT-based system (WinNT, Win2k, WinXP or later), use
|
||||
syslinux.exe instead.
|
||||
|
||||
1. Make a DOS bootable disk. This can be done either by specifying
|
||||
the /s option when formatting the disk in DOS, or by running the
|
||||
DOS command SYS:
|
||||
|
||||
format a: /s
|
||||
or
|
||||
sys a:
|
||||
|
||||
2. Copy the DOS boot sector from the disk into a file. The file
|
||||
*must* have extension .bss:
|
||||
|
||||
copybs a: a:dos.bss
|
||||
|
||||
3. Run SYSLINUX on the disk:
|
||||
|
||||
syslinux a:
|
||||
|
||||
4. Copy the Linux kernel image(s), initrd(s), etc to the disk, and
|
||||
create/edit syslinux.cfg and help files if desired:
|
||||
|
||||
copy vmlinux a:
|
||||
copy initrd.gz a:
|
||||
|
||||
|
||||
++++ COMBOOT EXECUTABLES ++++
|
||||
|
||||
Syslinux supports simple standalone programs, using a file format
|
||||
similar to DOS ".com" files. A 32-bit version, called COM32, is also
|
||||
provided. A simple API provides access to a limited set of filesystem
|
||||
and console functions.
|
||||
|
||||
See the file comboot.txt for more information on COMBOOT and COM32
|
||||
programs.
|
||||
|
||||
|
||||
++++ NOVICE PROTECTION ++++
|
||||
|
||||
Syslinux will attempt to detect booting on a machine with too little
|
||||
memory, which means the Linux boot sequence cannot complete. If so, a
|
||||
message is displayed and the boot sequence aborted. Holding down the
|
||||
Ctrl key while booting disables this feature.
|
||||
|
||||
Any file that SYSLINUX uses can be marked hidden, system or readonly
|
||||
if so is convenient; SYSLINUX ignores all file attributes. The
|
||||
SYSLINUX installed automatically sets the readonly/hidden/system
|
||||
attributes on LDLINUX.SYS.
|
||||
|
||||
|
||||
++++ NOTES ON BOOTABLE CD-ROMS ++++
|
||||
|
||||
SYSLINUX can be used to create bootdisk images for El
|
||||
Torito-compatible bootable CD-ROMs. However, it appears that many
|
||||
BIOSes are very buggy when it comes to booting CD-ROMs. Some users
|
||||
have reported that the following steps are helpful in making a CD-ROM
|
||||
that is bootable on the largest possible number of machines:
|
||||
|
||||
a) Use the -s (safe, slow and stupid) option to SYSLINUX;
|
||||
b) Put the boot image as close to the beginning of the
|
||||
ISO 9660 filesystem as possible.
|
||||
|
||||
A CD-ROM is so much faster than a floppy that the -s option shouldn't
|
||||
matter from a speed perspective.
|
||||
|
||||
Of course, you probably want to use ISOLINUX instead. See isolinux.txt.
|
||||
|
||||
|
||||
++++ BOOTING FROM A FAT FILESYSTEM PARTITION ON A HARD DISK ++++
|
||||
|
||||
SYSLINUX can boot from a FAT filesystem partition on a hard disk
|
||||
(including FAT32). The installation procedure is identical to the
|
||||
procedure for installing it on a floppy, and should work under either
|
||||
DOS or Linux. To boot from a partition, SYSLINUX needs to be launched
|
||||
from a Master Boot Record or another boot loader, just like DOS itself
|
||||
would.
|
||||
|
||||
Under DOS, you can install a standard simple MBR on the primary hard
|
||||
disk by running the command:
|
||||
|
||||
FDISK /MBR
|
||||
|
||||
Then use the FDISK command to mark the appropriate partition active.
|
||||
|
||||
A simple MBR, roughly on par with the one installed by DOS (but
|
||||
unencumbered), is included in the SYSLINUX distribution. To install
|
||||
it under Linux, simply type:
|
||||
|
||||
cat mbr.bin > /dev/XXX
|
||||
|
||||
... where /dev/XXX is the device you wish to install it on.
|
||||
|
||||
Under DOS or Win32, you can install the SYSLINUX MBR with the -m
|
||||
option to the SYSLINUX installer, and use the -a option to mark the
|
||||
current partition active:
|
||||
|
||||
syslinux -ma c:
|
||||
|
||||
Note that this will also install SYSLINUX on the specified partition.
|
||||
|
||||
|
||||
++++ HARDWARE INFORMATION +++
|
||||
|
||||
I have started to maintain a web page of hardware with known
|
||||
problems. There are, unfortunately, lots of broken hardware out
|
||||
there; especially early PXE stacks (for PXELINUX) have lots of
|
||||
problems.
|
||||
|
||||
A list of problems, and workarounds (if known), is maintained at:
|
||||
|
||||
http://syslinux.zytor.com/hardware.php
|
||||
|
||||
|
||||
++++ BOOT LOADER IDS USED ++++
|
||||
|
||||
The Linux boot protocol supports a "boot loader ID", a single byte
|
||||
where the upper nybble specifies a boot loader family (3 = Syslinux)
|
||||
and the lower nybble is version or, in the case of Syslinux, media:
|
||||
|
||||
0x31 (49) = SYSLINUX
|
||||
0x32 (50) = PXELINUX
|
||||
0x33 (51) = ISOLINUX
|
||||
0x34 (52) = EXTLINUX
|
||||
|
||||
In recent versions of Linux, this ID is available as
|
||||
/proc/sys/kernel/bootloader_type.
|
||||
|
||||
|
||||
++++ BUG REPORTS ++++
|
||||
|
||||
I would appreciate hearing of any problems you have with Syslinux. I
|
||||
would also like to hear from you if you have successfully used Syslinux,
|
||||
*especially* if you are using it for a distribution.
|
||||
|
||||
If you are reporting problems, please include all possible information
|
||||
about your system and your BIOS; the vast majority of all problems
|
||||
reported turn out to be BIOS or hardware bugs, and I need as much
|
||||
information as possible in order to diagnose the problems.
|
||||
|
||||
There is a mailing list for discussion among Syslinux users and for
|
||||
announcements of new and test versions. To join, or to browse the
|
||||
archive, go to:
|
||||
|
||||
http://www.zytor.com/mailman/listinfo/syslinux
|
||||
|
||||
Please DO NOT send HTML messages or attachments to the mailing list
|
||||
(including multipart/alternative or similar.) All such messages will
|
||||
be bounced.
|
||||
47
config/release/3rdparty/syslinux/doc/usbkey.txt
vendored
47
config/release/3rdparty/syslinux/doc/usbkey.txt
vendored
@@ -1,47 +0,0 @@
|
||||
The proper mode to boot a USB key drive in is "USB-HDD". That is the
|
||||
ONLY mode in which the C/H/S geometry encoded on the disk itself
|
||||
doesn't have to match what the BIOS thinks it is. Since geometry on
|
||||
USB drives is completely arbitrary, and can vary from BIOS to BIOS,
|
||||
this is the only mode which will work in general.
|
||||
|
||||
Some BIOSes have been reported (in particular, certain versions of the
|
||||
Award BIOS) that cannot boot USB keys in "USB-HDD" mode. This is a
|
||||
very serious BIOS bug, but it is unfortunately rather typical of the
|
||||
kind of quality we're seeing out of major BIOS vendors these days. On
|
||||
these BIOSes, you're generally stuck booting them in USB-ZIP mode.
|
||||
|
||||
THIS MEANS THE FILESYSTEM IMAGE ON THE DISK HAS TO HAVE A CORRECT
|
||||
ZIPDRIVE-COMPATIBLE GEOMETRY.
|
||||
|
||||
A standard zipdrive (both the 100 MB and the 250 MB varieties) have a
|
||||
"geometry" of 64 heads, 32 sectors, and are partitioned devices with a
|
||||
single partition 4 (unlike most other media of this type which uses
|
||||
partition 1.) The 100 MB variety has 96 cylinders, and the 250 MB
|
||||
variety has 239 cylinders; but any number of cylinders will do as
|
||||
appropriate for the size device you have. For example, if your device
|
||||
reports when inserted into a Linux system:
|
||||
|
||||
usb-storage: device found at 4
|
||||
Vendor: 32MB Model: HardDrive Rev: 1.88
|
||||
Type: Direct-Access ANSI SCSI revision: 02
|
||||
SCSI device sda: 64000 512-byte hdwr sectors (33 MB)
|
||||
|
||||
... you would have 64000/(64*32) = 31.25 cylinders; round down to 31.
|
||||
|
||||
The script "mkdiskimage" which is supplied with the syslinux
|
||||
distribution can be used to initialize USB keys in a Zip-like fashion.
|
||||
To do that, calculate the correct number of cylinders (31 in the
|
||||
example above), and, if your USB key is /dev/sda (CHECK THE KERNEL
|
||||
MESSAGES CAREFULLY - IF YOU ENTER THE WRONG DISK DRIVE IT CANNOT BE
|
||||
RECOVERED), run:
|
||||
|
||||
mkdiskimage -4 /dev/sda 0 64 32
|
||||
|
||||
(The 0 means automatically determine the size of the device, and -4
|
||||
means mimic a zipdisk by using partition 4.)
|
||||
|
||||
Then you should be able to run
|
||||
|
||||
syslinux /dev/sda4
|
||||
|
||||
... and mount /dev/sda4 and put your files on it as needed.
|
||||
BIN
config/release/3rdparty/syslinux/dos/syslinux.com
vendored
BIN
config/release/3rdparty/syslinux/dos/syslinux.com
vendored
Binary file not shown.
BIN
config/release/3rdparty/syslinux/win32/syslinux.exe
vendored
BIN
config/release/3rdparty/syslinux/win32/syslinux.exe
vendored
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
# VERSION: set full version, use "devel" for development version
|
||||
OPENELEC_VERSION="1.95.2"
|
||||
OPENELEC_VERSION="1.95.7"
|
||||
|
||||
# OS_VERSION: OS Version
|
||||
OS_VERSION="2.0"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
PPLE PUBLIC SOURCE LICENSE
|
||||
APPLE PUBLIC SOURCE LICENSE
|
||||
Version 2.0 - August 6, 2003
|
||||
|
||||
Please read this License carefully before downloading this software. By
|
||||
|
||||
102
licenses/OFL1_1.txt
Normal file
102
licenses/OFL1_1.txt
Normal file
@@ -0,0 +1,102 @@
|
||||
Digitized data copyright (c) 2010 Google Corporation
|
||||
with Reserved Font Arimo, Tinos and Cousine.
|
||||
Copyright (c) 2012 Red Hat, Inc.
|
||||
with Reserved Font Name Liberation.
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License,
|
||||
Version 1.1.
|
||||
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
|
||||
PREAMBLE The goals of the Open Font License (OFL) are to stimulate
|
||||
worldwide development of collaborative font projects, to support the font
|
||||
creation efforts of academic and linguistic communities, and to provide
|
||||
a free and open framework in which fonts may be shared and improved in
|
||||
partnership with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves.
|
||||
The fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply to
|
||||
any document created using the fonts or their derivatives.
|
||||
|
||||
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such.
|
||||
This may include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components
|
||||
as distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting ? in part or in whole ?
|
||||
any of the components of the Original Version, by changing formats or
|
||||
by porting the Font Software to a new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical writer
|
||||
or other person who contributed to the Font Software.
|
||||
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,in
|
||||
Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the
|
||||
corresponding Copyright Holder. This restriction only applies to the
|
||||
primary font name as presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole, must
|
||||
be distributed entirely under this license, and must not be distributed
|
||||
under any other license. The requirement for fonts to remain under
|
||||
this license does not apply to any document created using the Font
|
||||
Software.
|
||||
|
||||
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are not met.
|
||||
|
||||
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
|
||||
DEALINGS IN THE FONT SOFTWARE.
|
||||
|
||||
2
packages/3rdparty/download/CouchPotato/meta
vendored
2
packages/3rdparty/download/CouchPotato/meta
vendored
@@ -20,7 +20,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="CouchPotato"
|
||||
PKG_VERSION="46dbb59"
|
||||
PKG_VERSION="806bed6"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
30
packages/3rdparty/multimedia/vdr/install → packages/3rdparty/download/CouchPotatoServer/meta
vendored
Executable file → Normal file
30
packages/3rdparty/multimedia/vdr/install → packages/3rdparty/download/CouchPotatoServer/meta
vendored
Executable file → Normal file
@@ -1,5 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
@@ -21,18 +19,20 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
PKG_NAME="CouchPotatoServer"
|
||||
PKG_VERSION="e1d7440"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="https://github.com/RuudBurger/CouchPotatoServer"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS="Python SABnzbd"
|
||||
PKG_BUILD_DEPENDS="toolchain Python"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="service/downloadmanager"
|
||||
PKG_SHORTDESC="CouchPotatoServer: automated movie downloading."
|
||||
PKG_LONGDESC="CouchPotatoServer: automated movie downloading."
|
||||
|
||||
mkdir -p $INSTALL/usr/bin
|
||||
cp -P $PKG_BUILD/vdr $INSTALL/usr/bin
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
mkdir -p $INSTALL/usr/lib/vdr
|
||||
|
||||
mkdir -p $INSTALL/usr/config/vdr
|
||||
cp $PKG_BUILD/channels.conf* $INSTALL/usr/config/vdr
|
||||
cp $PKG_BUILD/diseqc.conf $INSTALL/usr/config/vdr
|
||||
cp $PKG_BUILD/keymacros.conf $INSTALL/usr/config/vdr
|
||||
cp $PKG_BUILD/scr.conf $INSTALL/usr/config/vdr
|
||||
cp $PKG_BUILD/sources.conf $INSTALL/usr/config/vdr
|
||||
cp $PKG_BUILD/svdrhosts.conf $INSTALL/usr/config/vdr
|
||||
echo '0.0.0.0/0' >> $INSTALL/usr/config/vdr/svdrphosts.conf
|
||||
PKG_AUTORECONF="no"
|
||||
2
packages/3rdparty/download/Headphones/meta
vendored
2
packages/3rdparty/download/Headphones/meta
vendored
@@ -20,7 +20,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="Headphones"
|
||||
PKG_VERSION="818458e"
|
||||
PKG_VERSION="d07dc39"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
4
packages/3rdparty/download/SABnzbd/meta
vendored
4
packages/3rdparty/download/SABnzbd/meta
vendored
@@ -19,12 +19,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="SABnzbd"
|
||||
PKG_VERSION="0.6.15"
|
||||
PKG_VERSION="0.7.3"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://sabnzbd.org/"
|
||||
PKG_URL="$SOURCEFORGE_SRC/sabnzbdplus/sabnzbdplus/sabnzbd-${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}-src.tar.gz"
|
||||
PKG_URL="$SOURCEFORGE_SRC/sabnzbdplus/sabnzbdplus/${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}-src.tar.gz"
|
||||
PKG_DEPENDS="Python Cheetah pyOpenSSL yenc unrar unzip par2cmdline"
|
||||
PKG_BUILD_DEPENDS="toolchain Python Cheetah pyOpenSSL yenc unrar unzip par2cmdline"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
diff -Naur SABnzbd-0.6.4/interfaces/Plush/templates/config_directories.tmpl SABnzbd-0.6.4.patch/interfaces/Plush/templates/config_directories.tmpl
|
||||
--- SABnzbd-0.6.4/interfaces/Plush/templates/config_directories.tmpl 2011-06-08 00:02:34.000000000 +0200
|
||||
+++ SABnzbd-0.6.4.patch/interfaces/Plush/templates/config_directories.tmpl 2011-06-13 16:37:49.027611932 +0200
|
||||
diff --git a/interfaces/Plush/templates/config_folders.tmpl b/interfaces/Plush/templates/config_folders.tmpl
|
||||
index 92bb5d1..94c1502 100644
|
||||
--- a/interfaces/Plush/templates/config_folders.tmpl
|
||||
+++ b/interfaces/Plush/templates/config_folders.tmpl
|
||||
@@ -76,16 +76,6 @@
|
||||
<span class="component-desc">$T('explain-dirscan_speed')</span>
|
||||
</label>
|
||||
@@ -68,9 +69,10 @@ diff -Naur SABnzbd-0.6.4/interfaces/Plush/templates/config_directories.tmpl SABn
|
||||
<div class="component-group-last clearfix">
|
||||
<div class="component-group-desc">
|
||||
<h3> </h3>
|
||||
diff -Naur SABnzbd-0.6.4/interfaces/Plush/templates/config_general.tmpl SABnzbd-0.6.4.patch/interfaces/Plush/templates/config_general.tmpl
|
||||
--- SABnzbd-0.6.4/interfaces/Plush/templates/config_general.tmpl 2011-06-08 00:02:34.000000000 +0200
|
||||
+++ SABnzbd-0.6.4.patch/interfaces/Plush/templates/config_general.tmpl 2011-06-13 16:35:26.411903234 +0200
|
||||
diff --git a/interfaces/Plush/templates/config_general.tmpl b/interfaces/Plush/templates/config_general.tmpl
|
||||
index 0c293ec..56f9488 100644
|
||||
--- a/interfaces/Plush/templates/config_general.tmpl
|
||||
+++ b/interfaces/Plush/templates/config_general.tmpl
|
||||
@@ -14,82 +14,6 @@
|
||||
</div>
|
||||
<fieldset class="component-group-list">
|
||||
@@ -154,7 +156,7 @@ diff -Naur SABnzbd-0.6.4/interfaces/Plush/templates/config_general.tmpl SABnzbd-
|
||||
<label class="nocheck clearfix" for="language">
|
||||
<span class="component-title">$T('opt-language')</span>
|
||||
<select name="language" id="language" id="language" class="select">
|
||||
@@ -129,13 +53,6 @@
|
||||
@@ -131,13 +55,6 @@
|
||||
<span class="component-desc">$T('explain-nzbkey')</span>
|
||||
</label>
|
||||
</div>
|
||||
@@ -168,7 +170,7 @@ diff -Naur SABnzbd-0.6.4/interfaces/Plush/templates/config_general.tmpl SABnzbd-
|
||||
</fieldset>
|
||||
</div><!-- /component-group1 -->
|
||||
|
||||
@@ -152,36 +69,6 @@
|
||||
@@ -154,36 +71,6 @@
|
||||
<span class="component-desc">$T('explain-enable_https')</span>
|
||||
</label>
|
||||
</div>
|
||||
@@ -205,9 +207,10 @@ diff -Naur SABnzbd-0.6.4/interfaces/Plush/templates/config_general.tmpl SABnzbd-
|
||||
</fieldset>
|
||||
</div><!-- /component-group2 -->
|
||||
|
||||
diff -Naur SABnzbd-0.6.4/interfaces/Plush/templates/config_switches.tmpl SABnzbd-0.6.4.patch/interfaces/Plush/templates/config_switches.tmpl
|
||||
--- SABnzbd-0.6.4/interfaces/Plush/templates/config_switches.tmpl 2011-06-08 00:02:34.000000000 +0200
|
||||
+++ SABnzbd-0.6.4.patch/interfaces/Plush/templates/config_switches.tmpl 2011-06-13 16:35:26.446903654 +0200
|
||||
diff --git a/interfaces/Plush/templates/config_switches.tmpl b/interfaces/Plush/templates/config_switches.tmpl
|
||||
index a8f1069..6f50b49 100644
|
||||
--- a/interfaces/Plush/templates/config_switches.tmpl
|
||||
+++ b/interfaces/Plush/templates/config_switches.tmpl
|
||||
@@ -12,20 +12,6 @@
|
||||
<h3>$T('swtag-general')</h3>
|
||||
</div>
|
||||
2
packages/3rdparty/download/SickBeard/meta
vendored
2
packages/3rdparty/download/SickBeard/meta
vendored
@@ -20,7 +20,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="SickBeard"
|
||||
PKG_VERSION="a24eac6"
|
||||
PKG_VERSION="b7cf06e"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
2
packages/3rdparty/driver/dvbhdhomerun/meta
vendored
2
packages/3rdparty/driver/dvbhdhomerun/meta
vendored
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="dvbhdhomerun"
|
||||
PKG_VERSION="0.0.9"
|
||||
PKG_VERSION="0.0.10"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
diff -uNr dvbhdhomerun-0.0.9-orig/userhdhomerun/hdhomerun_tuner.cpp dvbhdhomerun-0.0.9/userhdhomerun/hdhomerun_tuner.cpp
|
||||
--- dvbhdhomerun-0.0.9-orig/userhdhomerun/hdhomerun_tuner.cpp 2011-03-06 21:00:01.000000000 +0100
|
||||
+++ dvbhdhomerun-0.0.9/userhdhomerun/hdhomerun_tuner.cpp 2011-12-21 09:12:03.000000000 +0100
|
||||
@@ -80,11 +80,29 @@
|
||||
diff -uNr dvbhdhomerun-0.0.10-orig/userhdhomerun/hdhomerun_tuner.cpp dvbhdhomerun-0.0.10/userhdhomerun/hdhomerun_tuner.cpp
|
||||
--- dvbhdhomerun-0.0.10-orig/userhdhomerun/hdhomerun_tuner.cpp 2012-04-28 18:05:40.000000000 +0200
|
||||
+++ dvbhdhomerun-0.0.10/userhdhomerun/hdhomerun_tuner.cpp 2012-06-05 13:21:16.000000000 +0200
|
||||
@@ -97,12 +97,28 @@
|
||||
string type(tmp);
|
||||
LOG() << "Type of device: " << type << endl;
|
||||
if(type == "hdhomerun_dvbt") {
|
||||
- LOG() << "Notice, setting to DVB-C!! Use /etc/dvbhdhomerun to change that." << endl;
|
||||
- m_type = HdhomerunTuner::DVBC;
|
||||
+ m_type = HdhomerunTuner::DVBT;
|
||||
}
|
||||
@@ -28,7 +29,6 @@ diff -uNr dvbhdhomerun-0.0.9-orig/userhdhomerun/hdhomerun_tuner.cpp dvbhdhomerun
|
||||
+ LOG() << "Auto detecting tuner type set to \"" << type
|
||||
+ << "\" based on auto detecting" << endl;
|
||||
+ }
|
||||
+
|
||||
}
|
||||
else {
|
||||
ERR() << "get_model_str from HDHomeRun failed!" << endl;
|
||||
@@ -22,9 +22,16 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp $PKG_BUILD/ffmpeg $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp $PKG_BUILD/avplay $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cd $PKG_BUILD
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/ffmpeg
|
||||
cp $PKG_BUILD/presets/* $ADDON_BUILD/$PKG_ADDON_ID/ffmpeg
|
||||
# binary search & replace (strings must be same length!)
|
||||
# mediasrv
|
||||
# /etc/sunI»dtek.conf
|
||||
# /etc/sundtek.conf
|
||||
# libdrv_em28xx.so
|
||||
# /etc/sundtek.conf
|
||||
# mediaclient
|
||||
# /etc/sundtek_diseqc.conf
|
||||
perl -pi -e 's|/etc|/tmp|g' opt/bin/mediasrv
|
||||
perl -pi -e 's|/etc|/tmp|g' opt/bin/dvb/libdrv_em28xx.so
|
||||
perl -pi -e 's|/etc|/tmp|g' opt/bin/mediaclient
|
||||
7
packages/3rdparty/driver/sundtek/meta
vendored
Normal file → Executable file
7
packages/3rdparty/driver/sundtek/meta
vendored
Normal file → Executable file
@@ -19,13 +19,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="sundtek"
|
||||
#PKG_VERSION="installer_111001.1658"
|
||||
PKG_VERSION="installer_development"
|
||||
PKG_VERSION="20120525"
|
||||
PKG_REV="0"
|
||||
PKG_ARCH="any"
|
||||
PKG_ARCH="i386 x86_64"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="http://support.sundtek.com/"
|
||||
PKG_URL="http://www.sundtek.de/media/${PKG_NAME}_${PKG_VERSION}.sh"
|
||||
PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}-${ARCH}.tar.gz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS=""
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
77
packages/3rdparty/driver/sundtek/unpack
vendored
77
packages/3rdparty/driver/sundtek/unpack
vendored
@@ -1,77 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $BUILD/${PKG_NAME}_${PKG_VERSION}
|
||||
|
||||
(
|
||||
cd $BUILD/${PKG_NAME}_${PKG_VERSION}
|
||||
|
||||
CHAR=`echo $SOURCES | awk '{ch=substr($0, 0, 1); printf("%c", ch); }'`
|
||||
if [ ${CHAR} = "/" ]; then
|
||||
SRC_INSTALLER_ROOT=""
|
||||
else
|
||||
SRC_INSTALLER_ROOT="$ROOT/"
|
||||
fi
|
||||
|
||||
sh ${SRC_INSTALLER_ROOT}$SOURCES/$1/${PKG_NAME}_${PKG_VERSION}.sh -e >/dev/null 2>&1
|
||||
|
||||
rm chk* installer.tar.gz
|
||||
rm -r 32bit23 arm* dreambox mips* openwrtmipsr2 ppc*
|
||||
)
|
||||
|
||||
[ "$TARGET_ARCH" = "i386" ] && ARCH_DIR=32bit
|
||||
[ "$TARGET_ARCH" = "x86_64" ] && ARCH_DIR=64bit
|
||||
|
||||
SUNDTEK_ROOT=$BUILD/${PKG_NAME}_${PKG_VERSION}/rootsys
|
||||
|
||||
mkdir -p $SUNDTEK_ROOT
|
||||
tar xzf $BUILD/${PKG_NAME}_${PKG_VERSION}/$ARCH_DIR/installer.tar.gz -C $SUNDTEK_ROOT
|
||||
|
||||
# fix permissions (on mediasrv binary)
|
||||
chmod 755 $SUNDTEK_ROOT/opt/bin/*
|
||||
|
||||
# binary search & replace (strings must be same length!)
|
||||
# mediasrv
|
||||
# /etc/sunI<6E>dtek.conf
|
||||
# /etc/sundtek.conf
|
||||
# libdrv_em28xx.so
|
||||
# /etc/sundtek.conf
|
||||
# mediaclient
|
||||
# /etc/sundtek_diseqc.conf
|
||||
#perl -pi -e 's|\x2F\x65\x74\x63\x2F\x73\x75\x6E\x49\xBB\x64\x74\x65\x6B\x2E\x63\x6F\x6E\x66|\x2F\x74\x6D\x70\x2F\x73\x75\x6E\x49\xBB\x64\x74\x65\x6B\x2E\x63\x6F\x6E\x66|g' $SUNDTEK_ROOT/opt/bin/mediasrv
|
||||
#perl -pi -e 's|/etc/sundtek.conf|/tmp/sundtek.conf|g' $SUNDTEK_ROOT/opt/bin/mediasrv
|
||||
#perl -pi -e 's|/etc/sundtek.conf|/tmp/sundtek.conf|g' $SUNDTEK_ROOT/opt/bin/dvb/libdrv_em28xx.so
|
||||
#perl -pi -e 's|/etc/sundtek_diseqc.conf|/tmp/sundtek_diseqc.conf|g' $SUNDTEK_ROOT/opt/bin/mediaclient
|
||||
|
||||
perl -pi -e 's|/etc|/tmp|g' $SUNDTEK_ROOT/opt/bin/mediasrv
|
||||
perl -pi -e 's|/etc|/tmp|g' $SUNDTEK_ROOT/opt/bin/dvb/libdrv_em28xx.so
|
||||
perl -pi -e 's|/etc|/tmp|g' $SUNDTEK_ROOT/opt/bin/mediaclient
|
||||
|
||||
if [ "$PKG_VERSION" = "installer_development" ]; then
|
||||
wget -q -t 3 -T 3 -O $SUNDTEK_ROOT/sundtek_version.html http://support.sundtek.com/index.php/topic,708.0.html
|
||||
else
|
||||
cat >$SUNDTEK_ROOT/sundtek_version.html << MYDATA
|
||||
<html><body>${PKG_NAME}_${PKG_VERSION}.sh</body></html>
|
||||
MYDATA
|
||||
fi
|
||||
50
packages/3rdparty/graphics/imlib2/build
vendored
Executable file
50
packages/3rdparty/graphics/imlib2/build
vendored
Executable file
@@ -0,0 +1,50 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
VDR_ADDON_DIR="/storage/.xbmc/addons/service.multimedia.vdr-addon"
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
case "$TARGET_ARCH" in
|
||||
i386)
|
||||
MMX_ARG="--enable-mmx --disable-amd64"
|
||||
;;
|
||||
x86_64)
|
||||
MMX_ARG="--enable-mmx --enable-amd64"
|
||||
;;
|
||||
*)
|
||||
MMX_ARG="--disable-mmx --disable-amd64"
|
||||
;;
|
||||
esac
|
||||
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--prefix=/usr \
|
||||
--sysconfdir=/etc \
|
||||
$MMX_ARG
|
||||
|
||||
sed -i "s|#define SYS_LOADERS_PATH .*|#define SYS_LOADERS_PATH \"$VDR_ADDON_DIR/lib/imlib2\"|" src/lib/loaderpath.h
|
||||
|
||||
make
|
||||
$MAKEINSTALL
|
||||
@@ -1,8 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# Copyright (C) 2009-2010 OpenELEC.tv
|
||||
# http://www.openelec.tv
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -20,10 +18,18 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
count=0
|
||||
|
||||
while [ $(pidof xbmc.bin) -a $count -le 20 ]; do
|
||||
usleep 250000
|
||||
logger -t wait_on_xbmc_exit "### Waiting for XBMC to Exit - $count ###"
|
||||
count=$((count+1))
|
||||
done
|
||||
PKG_NAME="imlib2"
|
||||
PKG_VERSION="1.4.5"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://web.enlightenment.org/"
|
||||
PKG_URL="$SOURCEFORGE_SRC/enlightenment/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain libjpeg-turbo libpng tiff zlib bzip2 libX11 libXext"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="Imlib2 is a graphics library."
|
||||
PKG_LONGDESC="Imlib2 is a graphics library for file loading, saving, rendering, manipulation."
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
52
packages/3rdparty/lib/cxxtools/build
vendored
Executable file
52
packages/3rdparty/lib/cxxtools/build
vendored
Executable file
@@ -0,0 +1,52 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
setup_toolchain host
|
||||
|
||||
mkdir -p .build-host && cd .build-host
|
||||
|
||||
../configure --host=$HOST_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--prefix=$ROOT/$TOOLCHAIN \
|
||||
--disable-static \
|
||||
--enable-shared
|
||||
|
||||
make
|
||||
make install
|
||||
|
||||
cd ..
|
||||
|
||||
setup_toolchain target
|
||||
|
||||
mkdir -p .build-target && cd .build-target
|
||||
../configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--prefix=/usr \
|
||||
--sysconfdir=/etc \
|
||||
--disable-static \
|
||||
--enable-shared
|
||||
|
||||
$MAKEINSTALL
|
||||
6
packages/addons/multimedia/libav/source/default.py → packages/3rdparty/lib/cxxtools/install
vendored
Normal file → Executable file
6
packages/addons/multimedia/libav/source/default.py → packages/3rdparty/lib/cxxtools/install
vendored
Normal file → Executable file
@@ -1,3 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
@@ -18,6 +20,4 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
import os
|
||||
import sys
|
||||
import xbmcaddon
|
||||
. config/options $1
|
||||
36
packages/3rdparty/lib/cxxtools/meta
vendored
Normal file
36
packages/3rdparty/lib/cxxtools/meta
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="cxxtools"
|
||||
PKG_VERSION="2.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL-2"
|
||||
PKG_SITE="http://www.tntnet.org/cxxtools.html"
|
||||
PKG_URL="http://www.tntnet.org/download/${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="python/web"
|
||||
PKG_SHORTDESC="cxxtools: a collection of general-purpose C++ classes"
|
||||
PKG_LONGDESC="Cxxtools is a collection of general-purpose C++ classes"
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
20
packages/3rdparty/lib/libccid/build
vendored
20
packages/3rdparty/lib/libccid/build
vendored
@@ -1,5 +1,25 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
4
packages/3rdparty/lib/libccid/meta
vendored
4
packages/3rdparty/lib/libccid/meta
vendored
@@ -19,12 +19,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libccid"
|
||||
PKG_VERSION="1.4.5"
|
||||
PKG_VERSION="1.4.7"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="http://pcsclite.alioth.debian.org/ccid.html"
|
||||
PKG_URL="https://alioth.debian.org/frs/download.php/3672/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
||||
PKG_URL="https://alioth.debian.org/frs/download.php/3730/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain pcsc-lite"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
20
packages/3rdparty/lib/libccid/rename
vendored
20
packages/3rdparty/lib/libccid/rename
vendored
@@ -1,5 +1,25 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
cd $BUILD
|
||||
|
||||
20
packages/3rdparty/lib/libhdhomerun/build
vendored
20
packages/3rdparty/lib/libhdhomerun/build
vendored
@@ -1,5 +1,25 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
2
packages/3rdparty/lib/libhdhomerun/meta
vendored
2
packages/3rdparty/lib/libhdhomerun/meta
vendored
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libhdhomerun"
|
||||
PKG_VERSION="20111025"
|
||||
PKG_VERSION="20120405"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
|
||||
20
packages/3rdparty/lib/libhdhomerun/rename
vendored
20
packages/3rdparty/lib/libhdhomerun/rename
vendored
@@ -1,5 +1,25 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
cd $BUILD
|
||||
|
||||
1
packages/3rdparty/lib/libpcap/build
vendored
1
packages/3rdparty/lib/libpcap/build
vendored
@@ -28,6 +28,7 @@ cd $BUILD/$1*
|
||||
# forcing it
|
||||
sed -i -e 's/ac_cv_linux_vers=unknown/ac_cv_linux_vers=2/' configure
|
||||
|
||||
LIBS="-lpthread" \
|
||||
./configure \
|
||||
--host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
|
||||
23
packages/3rdparty/lib/libpcap/meta
vendored
23
packages/3rdparty/lib/libpcap/meta
vendored
@@ -1,5 +1,25 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libpcap"
|
||||
PKG_VERSION="1.1.1"
|
||||
PKG_VERSION="1.3.0"
|
||||
PKG_SITE="http://www.tcpdump.org/"
|
||||
PKG_URL="http://www.tcpdump.org/release/libpcap-${PKG_VERSION}.tar.gz"
|
||||
PKG_REV=1
|
||||
@@ -8,5 +28,6 @@ PKG_PRIORITY=optional
|
||||
PKG_SECTION=libs
|
||||
PKG_SHORTDESC="system interface for user-level packet capture"
|
||||
PKG_LONGDESC="libpcap (Packet CAPture) provides a portable framework for low-level network monitoring. Applications include network statistics collection, security monitoring, network debugging, etc."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
49
packages/3rdparty/lib/libxslt/build
vendored
Executable file
49
packages/3rdparty/lib/libxslt/build
vendored
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
if [ "$ICONV" = "libiconv" ]; then
|
||||
CONFIG_LIBXML="--with-iconv"
|
||||
fi
|
||||
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--prefix=/usr \
|
||||
--sysconfdir=/etc \
|
||||
--enable-static \
|
||||
--enable-shared \
|
||||
$CONFIG_LIBXML \
|
||||
--disable-ipv6 \
|
||||
--without-python \
|
||||
--without-crypto
|
||||
|
||||
make
|
||||
|
||||
$MAKEINSTALL
|
||||
|
||||
$SED "s:\(['= ]\)/usr:\\1$SYSROOT_PREFIX/usr:g" \
|
||||
$SYSROOT_PREFIX/usr/bin/xslt-config
|
||||
|
||||
mv $SYSROOT_PREFIX/usr/bin/xslt-config $ROOT/$TOOLCHAIN/bin
|
||||
36
packages/3rdparty/lib/libxslt/meta
vendored
Normal file
36
packages/3rdparty/lib/libxslt/meta
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libxslt"
|
||||
PKG_VERSION="1.1.26"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="http://xmlsoft.org/xslt/"
|
||||
PKG_URL="ftp://xmlsoft.org/libxml2/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS="$ICONV"
|
||||
PKG_BUILD_DEPENDS="toolchain $ICONV"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="textproc"
|
||||
PKG_SHORTDESC="libxslt"
|
||||
PKG_LONGDESC="libxslt"
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
32
packages/3rdparty/lib/libzip/build
vendored
Executable file
32
packages/3rdparty/lib/libzip/build
vendored
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
./configure \
|
||||
--host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--prefix=/usr
|
||||
|
||||
$MAKEINSTALL
|
||||
34
packages/3rdparty/lib/libzip/meta
vendored
Normal file
34
packages/3rdparty/lib/libzip/meta
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libzip"
|
||||
PKG_VERSION="0.10.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.nih.at/libzip/"
|
||||
PKG_URL="http://www.nih.at/libzip/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SHORTDESC="libzip"
|
||||
PKG_LONGDESC="libzip"
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
45
packages/3rdparty/lib/xine-lib/build
vendored
Executable file
45
packages/3rdparty/lib/xine-lib/build
vendored
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
VDR_GUI_ADDON_DIR="/storage/.xbmc/addons/script.video.vdr-gui"
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
strip_lto
|
||||
|
||||
./autogen.sh --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--with-external-ffmpeg \
|
||||
--disable-dxr3 \
|
||||
--disable-aalib \
|
||||
--disable-vcd \
|
||||
--disable-musepack
|
||||
|
||||
sed -i "s|XINE_PLUGINDIR .*|XINE_PLUGINDIR \"$VDR_GUI_ADDON_DIR/lib/xine/plugins/2.1\"|" include/configure.h
|
||||
sed -i "s|XINE_PLUGINROOT .*|XINE_PLUGINROOT \"$VDR_GUI_ADDON_DIR/lib/xine/plugins/2\"|" include/configure.h
|
||||
|
||||
# same for fonts and locales and copy them
|
||||
|
||||
make
|
||||
$MAKEINSTALL
|
||||
35
packages/3rdparty/lib/xine-lib/meta
vendored
Normal file
35
packages/3rdparty/lib/xine-lib/meta
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xine-lib"
|
||||
PKG_VERSION="1-2-25f276f9211a"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.xine-project.org/"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS="ffmpeg"
|
||||
PKG_BUILD_DEPENDS="toolchain ffmpeg"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="xine is a high-performance, portable and reusable multimedia playback engine."
|
||||
PKG_LONGDESC="xine is a high-performance, portable and reusable multimedia playback engine."
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
30
packages/3rdparty/multimedia/rotorng/build
vendored
Executable file
30
packages/3rdparty/multimedia/rotorng/build
vendored
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
VDR_DIR=`basename $BUILD/vdr-[0-9]*`
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
make VDRDIR="../$VDR_DIR" LIBDIR="." LOCALEDIR="./locale"
|
||||
|
||||
37
packages/3rdparty/multimedia/rotorng/meta
vendored
Normal file
37
packages/3rdparty/multimedia/rotorng/meta
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="rotorng"
|
||||
PKG_VERSION="0.1.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://projects.vdr-developer.org/projects/plg-rotor-ng"
|
||||
PKG_URL="http://projects.vdr-developer.org/attachments/download/631/rotorng-${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS="vdr"
|
||||
PKG_BUILD_DEPENDS="toolchain vdr"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="Next generation of a VDR plugin design to drive a diseqc rotor"
|
||||
PKG_LONGDESC="Next generation of a VDR plugin design to drive a diseqc rotor"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
30
packages/3rdparty/multimedia/rotorng/patches/rotorng-0.1.0-vdr.patch
vendored
Normal file
30
packages/3rdparty/multimedia/rotorng/patches/rotorng-0.1.0-vdr.patch
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
diff -uNr rotorng-0.1.0-orig/rotorng.c rotorng-0.1.0/rotorng.c
|
||||
--- rotorng-0.1.0-orig/rotorng.c 2012-05-06 16:14:06.000000000 +0200
|
||||
+++ rotorng-0.1.0/rotorng.c 2012-05-07 10:52:18.000000000 +0200
|
||||
@@ -338,7 +338,7 @@
|
||||
int last_position_shown;
|
||||
bool transfer;
|
||||
protected:
|
||||
- virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber);
|
||||
+ virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber,bool LiveView);
|
||||
public:
|
||||
cStatusMonitor();
|
||||
};
|
||||
@@ -348,7 +348,7 @@
|
||||
transfer=false;
|
||||
}
|
||||
|
||||
-void cStatusMonitor::ChannelSwitch(const cDevice *Device, int ChannelNumber)
|
||||
+void cStatusMonitor::ChannelSwitch(const cDevice *Device, int ChannelNumber,bool LiveView)
|
||||
{
|
||||
//actuator_status status;
|
||||
if (ChannelNumber) {
|
||||
@@ -1494,7 +1494,7 @@
|
||||
snprintf(buf, sizeof(buf),"%s %d", tr(menucaption[itemindex]), menuvalue[itemindex]);
|
||||
break;
|
||||
case MI_SYSTEM:
|
||||
- snprintf(buf, sizeof(buf),"%s %s", tr(menucaption[itemindex]), MapToUserString(menuvalue[itemindex], SystemValues));
|
||||
+ snprintf(buf, sizeof(buf),"%s %s", tr(menucaption[itemindex]), MapToUserString(menuvalue[itemindex], SystemValuesSat));
|
||||
break;
|
||||
case MI_MODULATION:
|
||||
snprintf(buf, sizeof(buf),"%s %s ", tr(menucaption[itemindex]), MapToUserString(menuvalue[itemindex], ModulationValues));
|
||||
@@ -22,9 +22,12 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
echo "### Applying upstream patches ###"
|
||||
CFLAGS="$CFLAGS -fPIC"
|
||||
CXXFLAGS="$CXXFLAGS -fPIC"
|
||||
LDFLAGS="$LDFLAGS -fPIC"
|
||||
|
||||
for patch in `ls $PKG_DIR/patches.upstream/*.patch`; do
|
||||
cat $patch | patch -d \
|
||||
`echo $BUILD/$PKG_NAME-$PKG_VERSION | cut -f1 -d\ ` -p0
|
||||
done
|
||||
VDR_DIR=`basename $BUILD/vdr-[0-9]*`
|
||||
|
||||
cd $PKG_BUILD
|
||||
PWD=`pwd`
|
||||
make VDRDIR="$PWD/../$VDR_DIR" LIBDIR="." LOCALEDIR="./locale"
|
||||
37
packages/3rdparty/multimedia/vdr-control/meta
vendored
Normal file
37
packages/3rdparty/multimedia/vdr-control/meta
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-control"
|
||||
PKG_VERSION="0.0.2a"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://ricomp.de/vdr/"
|
||||
PKG_URL="http://ricomp.de/vdr/${PKG_NAME}-${PKG_VERSION}.tgz"
|
||||
PKG_DEPENDS="vdr"
|
||||
PKG_BUILD_DEPENDS="toolchain vdr"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr control plugin"
|
||||
PKG_LONGDESC="vdr control plugin"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
20
packages/3rdparty/multimedia/vdr-control/patches/vdr-control-0.0.2a-01_Makefile-fPIC-fix.patch
vendored
Normal file
20
packages/3rdparty/multimedia/vdr-control/patches/vdr-control-0.0.2a-01_Makefile-fPIC-fix.patch
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh /usr/share/dpatch/dpatch-run
|
||||
|
||||
## Makefile-fPIC-fix patch
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Adds -fPIC to Makefile to fix potential FTBFS.
|
||||
|
||||
@DPATCH@
|
||||
diff -urNad /usr/src/cvs/vdrdevel-plugin-rotor/Makefile vdrdevel-plugin-rotor/Makefile
|
||||
--- /usr/src/cvs/vdrdevel-plugin-rotor/Makefile Sun May 16 15:48:12 2004
|
||||
+++ vdrdevel-plugin-rotor/Makefile Sat Sep 11 00:28:18 2004
|
||||
@@ -18,7 +18,7 @@
|
||||
### The C++ compiler and options:
|
||||
|
||||
CXX ?= g++
|
||||
-CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual
|
||||
+CXXFLAGS ?= -fPIC -O2 -Wall -Woverloaded-virtual
|
||||
|
||||
### The directory environment:
|
||||
|
||||
31
packages/3rdparty/multimedia/vdr-control/patches/vdr-control-0.0.2a-02_gateway.patch
vendored
Normal file
31
packages/3rdparty/multimedia/vdr-control/patches/vdr-control-0.0.2a-02_gateway.patch
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
||||
## 02_gateway.dpatch by Walter, dg9ep @ vdrportal.de
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Fixes problems when ending a telnet session with ctrl-c
|
||||
## DP: see: http://www.vdr-portal.de/board/thread.php?threadid=49680
|
||||
|
||||
@DPATCH@
|
||||
diff -urNad vdr-plugin-control-0.0.2a~/gateway.c vdr-plugin-control-0.0.2a/gateway.c
|
||||
--- vdr-plugin-control-0.0.2a~/gateway.c 2004-07-02 21:24:22.000000000 +0200
|
||||
+++ vdr-plugin-control-0.0.2a/gateway.c 2007-04-12 22:51:16.000000000 +0200
|
||||
@@ -36,7 +36,7 @@
|
||||
_pTelnet (0),
|
||||
_pFormatter (0)
|
||||
{
|
||||
- gl_CtrlGatewayCol.Add(this);
|
||||
+// gl_CtrlGatewayCol.Add(this);
|
||||
|
||||
// if (! cKbdRemoteForControl::_pRemote)
|
||||
// cKbdRemoteForControl::_pRemote = new cKbdRemoteForControl();
|
||||
@@ -163,8 +163,8 @@
|
||||
|
||||
// UnprepareSocket();
|
||||
|
||||
- if (! _terminating)
|
||||
- gl_CtrlGatewayCol.Del(this);
|
||||
+// if (! _terminating)
|
||||
+// gl_CtrlGatewayCol.Del(this);
|
||||
|
||||
conDSYSLOG("gateway thread ended (pid=%d)", getpid());
|
||||
conLOG_GATEW("gateway thread ended (pid=%d)", getpid());
|
||||
35
packages/3rdparty/multimedia/vdr-control/patches/vdr-control-0.0.2a-92_control-1.3.18.patch
vendored
Normal file
35
packages/3rdparty/multimedia/vdr-control/patches/vdr-control-0.0.2a-92_control-1.3.18.patch
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
#!/bin/sh /usr/share/dpatch/dpatch-run
|
||||
|
||||
## control-1.3.18 patch - by Thomas G<>nther <tom@toms-cafe.de>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Changes for VDR >= 1.3.18.
|
||||
|
||||
@DPATCH@
|
||||
--- control-0.0.2a/gateway.c
|
||||
+++ control-0.0.2a/gateway.c
|
||||
@@ -102,7 +102,12 @@
|
||||
|
||||
uint64 Command = 0;
|
||||
uint i = 0;
|
||||
+#if VDRVERSNUM >= 10318
|
||||
+ cTimeMs timeout;
|
||||
+ timeout.Set(100);
|
||||
+#else
|
||||
int t0 = time_ms();
|
||||
+#endif
|
||||
while (_active && i < sizeof(Command)) {
|
||||
|
||||
uchar ch;
|
||||
@@ -131,7 +136,11 @@
|
||||
// of their codes, so we'll need to wait some 100ms to see if
|
||||
// there is more coming up - or whether this really is the 'ESC'
|
||||
// key (if somebody knows how to clean this up, please let me know):
|
||||
+#if VDRVERSNUM >= 10318
|
||||
+ if (Command == 0x1B && !timeout.TimedOut())
|
||||
+#else
|
||||
if (Command == 0x1B && time_ms() - t0 < 100)
|
||||
+#endif
|
||||
continue;
|
||||
|
||||
if (Command) {
|
||||
@@ -0,0 +1,73 @@
|
||||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
||||
## 93_control-0.0.2a-1.5.0.dpatch by Thomas G<>nther <tom@toms-cafe.de>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Changes for VDR >= 1.5.0 (applicable to VDR >= 1.4.5).
|
||||
|
||||
@DPATCH@
|
||||
--- control-0.0.2a/gateway.c
|
||||
+++ control-0.0.2a/gateway.c
|
||||
@@ -100,7 +100,7 @@
|
||||
|
||||
if (_stack.poll(100)) {
|
||||
|
||||
- uint64 Command = 0;
|
||||
+ uint64_t Command = 0;
|
||||
uint i = 0;
|
||||
int t0 = time_ms();
|
||||
while (_active && i < sizeof(Command)) {
|
||||
--- control-0.0.2a/keyboard.c
|
||||
+++ control-0.0.2a/keyboard.c
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
struct tKbdMap {
|
||||
eKbdFunc func;
|
||||
- uint64 code;
|
||||
+ uint64_t code;
|
||||
};
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
|
||||
|
||||
|
||||
-bool cCtrlKeyboard::intPut(uint64 Command, bool Repeat, bool Release) {
|
||||
+bool cCtrlKeyboard::intPut(uint64_t Command, bool Repeat, bool Release) {
|
||||
|
||||
bool ret = cRemote::Put(Command, Repeat, Release);
|
||||
conLOG_KEYB("%s cKbdRemoteForControl::intPut(0x%016LX)", ret ? "true" : "false", Command);
|
||||
@@ -126,7 +126,7 @@
|
||||
|
||||
|
||||
|
||||
-bool cCtrlKeyboard::Put(uint64 Command, bool Repeat, bool Release) {
|
||||
+bool cCtrlKeyboard::Put(uint64_t Command, bool Repeat, bool Release) {
|
||||
|
||||
if (! _pRemote)
|
||||
_pRemote = new cCtrlKeyboard();
|
||||
@@ -136,7 +136,7 @@
|
||||
|
||||
|
||||
|
||||
-int cCtrlKeyboard::MapCodeToFunc(uint64 Code) {
|
||||
+int cCtrlKeyboard::MapCodeToFunc(uint64_t Code) {
|
||||
|
||||
for (const tKbdMap *p = keyboardKbdMap; p->func != kfNone; p++) {
|
||||
if (p->code == Code)
|
||||
--- control-0.0.2a/keyboard.h
|
||||
+++ control-0.0.2a/keyboard.h
|
||||
@@ -30,11 +30,11 @@
|
||||
cCtrlKeyboard();
|
||||
virtual ~cCtrlKeyboard();
|
||||
|
||||
- bool intPut(uint64 Command, bool Repeat, bool Release);
|
||||
+ bool intPut(uint64_t Command, bool Repeat, bool Release);
|
||||
|
||||
public:
|
||||
- static bool Put(uint64 Command, bool Repeat = false, bool Release = false);
|
||||
- static int MapCodeToFunc(uint64 Code);
|
||||
+ static bool Put(uint64_t Command, bool Repeat = false, bool Release = false);
|
||||
+ static int MapCodeToFunc(uint64_t Code);
|
||||
};
|
||||
|
||||
|
||||
28
packages/3rdparty/multimedia/vdr-control/patches/vdr-control-0.0.2a-94_gcc-4.4.patch
vendored
Normal file
28
packages/3rdparty/multimedia/vdr-control/patches/vdr-control-0.0.2a-94_gcc-4.4.patch
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
||||
## 94_gcc-4.4.dpatch by Tobias Grimm <etobi@debian.org>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: No description.
|
||||
|
||||
@DPATCH@
|
||||
diff -urNad vdr-plugin-control-0.0.2a~/formatter.c vdr-plugin-control-0.0.2a/formatter.c
|
||||
--- vdr-plugin-control-0.0.2a~/formatter.c 2004-07-02 21:24:22.000000000 +0200
|
||||
+++ vdr-plugin-control-0.0.2a/formatter.c 2009-11-11 22:07:56.000000000 +0100
|
||||
@@ -165,7 +165,7 @@
|
||||
|
||||
if (Title) {
|
||||
|
||||
- char* t = strchr(Title, '\t');
|
||||
+ const char* t = strchr(Title, '\t');
|
||||
if (t) {
|
||||
|
||||
int size = t - Title;
|
||||
@@ -300,7 +300,7 @@
|
||||
|
||||
for (;;) {
|
||||
|
||||
- char* t = strchr(text, '\t');
|
||||
+ const char* t = strchr(text, '\t');
|
||||
if (t) {
|
||||
// Tab found - check if the tab can be used
|
||||
|
||||
26
packages/3rdparty/multimedia/vdr-control/rename
vendored
Executable file
26
packages/3rdparty/multimedia/vdr-control/rename
vendored
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
cd $BUILD
|
||||
mv control-${PKG_VERSION} ${PKG_NAME}-${PKG_VERSION}
|
||||
@@ -25,8 +25,8 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://projects.vdr-developer.org/projects/plg-dynamite"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS="vdr udev"
|
||||
PKG_BUILD_DEPENDS="toolchain vdr udev"
|
||||
PKG_DEPENDS="vdr systemd"
|
||||
PKG_BUILD_DEPENDS="toolchain vdr systemd"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr-dynamite turns the dvbdevices into hotpluggable devices. They can be dynamically attached and detached while vdr is running."
|
||||
|
||||
28
packages/3rdparty/multimedia/vdr-epgsearch/build
vendored
Executable file
28
packages/3rdparty/multimedia/vdr-epgsearch/build
vendored
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
VDR_DIR=`basename $BUILD/vdr-[0-9]*`
|
||||
cd $PKG_BUILD
|
||||
PWD=`pwd`
|
||||
make VDRDIR="$PWD/../$VDR_DIR" LIBDIR="." LOCALEDIR="./locale"
|
||||
37
packages/3rdparty/multimedia/vdr-epgsearch/meta
vendored
Normal file
37
packages/3rdparty/multimedia/vdr-epgsearch/meta
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-epgsearch"
|
||||
PKG_VERSION="1.0.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://winni.vdr-developer.org/epgsearch/"
|
||||
PKG_URL="http://winni.vdr-developer.org/epgsearch/downloads/${PKG_NAME}-${PKG_VERSION}.tgz"
|
||||
PKG_DEPENDS="vdr"
|
||||
PKG_BUILD_DEPENDS="toolchain vdr"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr-epgsearch"
|
||||
PKG_LONGDESC="vdr-epgsearch"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
46
packages/3rdparty/multimedia/vdr-epgsearch/patches/vdr-epgsearch-1.0.0-vdr_1.7.25-01.patch
vendored
Normal file
46
packages/3rdparty/multimedia/vdr-epgsearch/patches/vdr-epgsearch-1.0.0-vdr_1.7.25-01.patch
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
From 15d08ffb09de612ae1eb53b2aeca2f906f7076a6 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Wieninger
|
||||
Date: Sun, 04 Mar 2012 08:44:19 +0000
|
||||
Subject: support for vdr 1.7.25
|
||||
|
||||
---
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 0397217..4a72b41 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -64,7 +64,7 @@ CXXFLAGS ?= -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses -Wno-format-y2k
|
||||
|
||||
### The directory environment:
|
||||
|
||||
-DVBDIR = ../../../../DVB
|
||||
+#DVBDIR = ../../../../DVB
|
||||
VDRDIR = ../../..
|
||||
LIBDIR = ../../lib
|
||||
TMPDIR = /tmp
|
||||
diff --git a/conflictcheck.h b/conflictcheck.h
|
||||
index fcc6dcb..7e6fb7a 100644
|
||||
--- a/conflictcheck.h
|
||||
+++ b/conflictcheck.h
|
||||
@@ -163,12 +163,20 @@ class cConflictCheckDevice
|
||||
result = true;
|
||||
#ifdef DO_REC_AND_PLAY_ON_PRIMARY_DEVICE
|
||||
else
|
||||
+#if APIVERSNUM < 10725
|
||||
result = Priority >= Setup.PrimaryLimit;
|
||||
+#else
|
||||
+ result = Priority >= 0;
|
||||
+#endif
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
else
|
||||
+#if APIVERSNUM < 10725
|
||||
result = !IsPrimaryDevice() || Priority >= Setup.PrimaryLimit;
|
||||
+#else
|
||||
+ result = !IsPrimaryDevice() || Priority >= 0;
|
||||
+#endif
|
||||
}
|
||||
else
|
||||
needsDetachReceivers = true;
|
||||
--
|
||||
cgit v0.9.0.2-39-g756e
|
||||
@@ -22,5 +22,6 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $INSTALL/usr/lib/vdr
|
||||
cp $PKG_BUILD/libvdr-streamdev*.so.* $INSTALL/usr/lib/vdr
|
||||
cd $BUILD
|
||||
#mv epgsearch-${PKG_VERSION} ${PKG_NAME}-${PKG_VERSION}
|
||||
mv epgsearch-${PKG_VERSION} ${PKG_NAME}-${PKG_VERSION}
|
||||
2
packages/3rdparty/multimedia/vdr-iptv/meta
vendored
2
packages/3rdparty/multimedia/vdr-iptv/meta
vendored
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-iptv"
|
||||
PKG_VERSION="0.5.0"
|
||||
PKG_VERSION="0.5.2"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
commit 9766e893eb3ed1076e41f89b663b3be122355f39
|
||||
Author: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Wed Mar 7 00:13:55 2012 +0200
|
||||
|
||||
vdr-iptv: protocolhttp socket connect() fix
|
||||
|
||||
diff --git a/protocolhttp.c b/protocolhttp.c
|
||||
index 62abbd6..2d5277a 100644
|
||||
--- a/protocolhttp.c
|
||||
+++ b/protocolhttp.c
|
||||
@@ -42,6 +42,25 @@ bool cIptvProtocolHttp::Connect(void)
|
||||
if (!isActive && !isempty(streamAddr) && !isempty(streamPath)) {
|
||||
// Ensure that socket is valid and connect
|
||||
OpenSocket(socketPort, streamAddr);
|
||||
+
|
||||
+ // First try only the IP address
|
||||
+ sockAddr.sin_addr.s_addr = inet_addr(streamAddr);
|
||||
+
|
||||
+ if (sockAddr.sin_addr.s_addr == INADDR_NONE) {
|
||||
+ debug("Cannot convert %s directly to internet address\n", streamAddr);
|
||||
+
|
||||
+ // It may be a host name, get the name
|
||||
+ struct hostent *host;
|
||||
+ host = gethostbyname(streamAddr);
|
||||
+ if (!host) {
|
||||
+ char tmp[64];
|
||||
+ error("%s is not valid address: %s", streamAddr, strerror_r(h_errno, tmp, sizeof(tmp)));
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ sockAddr.sin_addr.s_addr = inet_addr(*host->h_addr_list);
|
||||
+ }
|
||||
+
|
||||
if (!ConnectSocket()) {
|
||||
CloseSocket();
|
||||
return false;
|
||||
@@ -1,18 +1,21 @@
|
||||
commit 67d5e792aa30100b111490c3c9e1c01f9def3c86
|
||||
Author: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Thu Mar 15 00:02:50 2012 +0200
|
||||
From c7cd9b614762103a95f3da27783e03ce115d43fb Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Sun, 20 May 2012 16:05:51 +0300
|
||||
Subject: [PATCH] vdr-iptv: skip header processing
|
||||
|
||||
vdr-iptv: skip header processing
|
||||
---
|
||||
protocolhttp.c | 12 +-----------
|
||||
1 files changed, 1 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/protocolhttp.c b/protocolhttp.c
|
||||
index 2d5277a..9b305aa 100644
|
||||
index de50f64..45c5425 100644
|
||||
--- a/protocolhttp.c
|
||||
+++ b/protocolhttp.c
|
||||
@@ -154,17 +154,7 @@ bool cIptvProtocolHttp::ProcessHeaders(void)
|
||||
@@ -140,17 +140,7 @@ bool cIptvProtocolHttp::ProcessHeaders(void)
|
||||
memset(buf, '\0', sizeof(buf));
|
||||
if (!GetHeaderLine(buf, sizeof(buf), lineLength))
|
||||
return false;
|
||||
- if (!responseFound && sscanf(buf, "HTTP/1.%*i %i ", &response) != 1) {
|
||||
- if (!responseFound && sscanf(buf, fmt, &version, &response) != 2) {
|
||||
- error("Expected HTTP header not found\n");
|
||||
- continue;
|
||||
- }
|
||||
@@ -27,3 +30,6 @@ index 2d5277a..9b305aa 100644
|
||||
}
|
||||
return true;
|
||||
}
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
20
packages/3rdparty/multimedia/vdr-iptv/rename
vendored
20
packages/3rdparty/multimedia/vdr-iptv/rename
vendored
@@ -1,5 +1,25 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
cd $BUILD
|
||||
|
||||
@@ -22,9 +22,15 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
PKG_SRC_DIR=`ls -d $PKG_BUILD`
|
||||
VDR_DIR=`basename $BUILD/vdr-[0-9]*`
|
||||
|
||||
PYTHON_IMAGE_DIR="`ls -d $INSTALL/usr/lib/python*`"
|
||||
export PYTHONPATH="$PYTHON_IMAGE_DIR/site-packages"
|
||||
CFLAGS="$CFLAGS -fPIC"
|
||||
CXXFLAGS="$CXXFLAGS -fPIC"
|
||||
LDFLAGS="$LDFLAGS -fPIC"
|
||||
|
||||
$TOOLCHAIN/bin/easy_install --exclude-scripts --zip-ok --quiet --prefix=$INSTALL/usr $PKG_SRC_DIR
|
||||
# dont build parallel
|
||||
MAKEFLAGS=-j1
|
||||
|
||||
cd $PKG_BUILD
|
||||
PWD=`pwd`
|
||||
make VDRDIR="$PWD/../$VDR_DIR" LIBDIR="." LOCALEDIR="./locale"
|
||||
37
packages/3rdparty/multimedia/vdr-live/meta
vendored
Normal file
37
packages/3rdparty/multimedia/vdr-live/meta
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-live"
|
||||
PKG_VERSION="0.2.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://live.vdr-developer.org/en/index.php"
|
||||
PKG_URL="http://live.vdr-developer.org/downloads/${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS="vdr"
|
||||
PKG_BUILD_DEPENDS="toolchain vdr tntnet"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr-live: the LIVE Interactive VDR Environment/"
|
||||
PKG_LONGDESC="vdr-live allows a comfortable operation of VDR and some of its plugins trough a web interface"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
39
packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-01_ipv6.patch
vendored
Normal file
39
packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-01_ipv6.patch
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
Description: Allows to use IPV6 addresses
|
||||
Forwarded: not-needed
|
||||
Origin: vendor, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=630627#10
|
||||
Bug-Debian: http://bugs.debian.org/630627
|
||||
Author: Luboš Doležel <lubos@dolezel.info>
|
||||
|
||||
--- live-0.2.0/setup.cpp.orig 2008-04-23 01:01:53.000000000 +0200
|
||||
+++ live-0.2.0/setup.cpp 2011-06-15 20:22:36.577961061 +0200
|
||||
@@ -151,13 +151,28 @@
|
||||
|
||||
bool Setup::CheckServerIps()
|
||||
{
|
||||
+ bool v6supported = false;
|
||||
+ int s = socket(AF_INET6, SOCK_STREAM, 0);
|
||||
+
|
||||
+ if (s != -1) {
|
||||
+ close(s);
|
||||
+ v6supported = true;
|
||||
+ }
|
||||
+
|
||||
if ( m_serverIps.empty() ) {
|
||||
- m_serverIps.push_back( "0.0.0.0" );
|
||||
+ if (v6supported)
|
||||
+ m_serverIps.push_back( "::" );
|
||||
+ else
|
||||
+ m_serverIps.push_back( "0.0.0.0" );
|
||||
return true;
|
||||
}
|
||||
|
||||
+ union {
|
||||
+ in_addr in4;
|
||||
+ in6_addr in6;
|
||||
+ };
|
||||
for ( IpList::const_iterator ip = m_serverIps.begin(); ip != m_serverIps.end(); ++ip ) {
|
||||
- if ( inet_addr( ip->c_str() ) == static_cast< in_addr_t >( -1 ) ) {
|
||||
+ if ( !inet_pton(AF_INET, ip->c_str(), &in4) && !inet_pton(AF_INET6, ip->c_str(), &in6) ) {
|
||||
esyslog( "ERROR: live server ip %s is not a valid ip address", ip->c_str() );
|
||||
cerr << "ERROR: live server ip " << *ip << " is not a valid ip address" << endl;
|
||||
return false;
|
||||
18
packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-02_timers_colon.patch
vendored
Normal file
18
packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-02_timers_colon.patch
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
||||
## 02_timers_colon.dpatch by Timo Weingärtner <timo@tiwe.de>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: colons have to be replaced by pipes in timer titles.
|
||||
|
||||
@DPATCH@
|
||||
--- vdr-plugin-live-0.2.0/timers.cpp 2008-04-10 22:06:05.000000000 +0200
|
||||
+++ vdr-plugin-live-0.2.0.new/timers.cpp 2009-07-25 23:39:02.000000000 +0200
|
||||
@@ -138,7 +138,7 @@
|
||||
ostringstream builder;
|
||||
builder << flags << ":" << channel << ":" << ( weekdays != "-------" ? weekdays : "" )
|
||||
<< ( weekdays == "-------" || day.empty() ? "" : "@" ) << day << ":" << start << ":" << stop << ":"
|
||||
- << priority << ":" << lifetime << ":" << title << ":" << aux;
|
||||
+ << priority << ":" << lifetime << ":" << StringReplace(title, ":", "|") << ":" << aux;
|
||||
// dsyslog("%s", builder.str().c_str());
|
||||
|
||||
TimerPair timerData( timer, builder.str() );
|
||||
70
packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-03_fix-INCLUDES.patch
vendored
Normal file
70
packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-03_fix-INCLUDES.patch
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
||||
## 03_live-0.2.0-fix-INCLUDES.dpatch by Thomas Günther <tom@toms-cafe.de>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Fixes compilation with VDR >= 1.7.13.
|
||||
|
||||
@DPATCH@
|
||||
--- live-0.2.0/Makefile
|
||||
+++ live-0.2.0/Makefile
|
||||
@@ -38,6 +38,7 @@
|
||||
### Allow user defined options to overwrite defaults:
|
||||
|
||||
-include $(VDRDIR)/Make.config
|
||||
+EXTRA_INCLUDES = $(INCLUDES)
|
||||
|
||||
### The version number of VDR's plugin API (taken from VDR's "config.h"):
|
||||
|
||||
@@ -139,10 +140,10 @@
|
||||
subdirs: $(SUBDIRS)
|
||||
|
||||
$(SUBDIRS):
|
||||
- $(MAKE) -C $@ CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" $(MAKECMDGOALS)
|
||||
+ $(MAKE) -C $@ CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" EXTRA_INCLUDES="$(EXTRA_INCLUDES)" $(MAKECMDGOALS)
|
||||
|
||||
PAGES:
|
||||
- $(MAKE) -C pages CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" .dependencies
|
||||
+ $(MAKE) -C pages CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" EXTRA_INCLUDES="$(EXTRA_INCLUDES)" .dependencies
|
||||
|
||||
$(VERSIONSUFFIX): FORCE
|
||||
./buildutil/version-util $(VERSIONSUFFIX) || ./buildutil/version-util -F $(VERSIONSUFFIX)
|
||||
--- live-0.2.0/css/Makefile
|
||||
+++ live-0.2.0/css/Makefile
|
||||
@@ -7,6 +7,7 @@
|
||||
CXXFLAGS += `tntnet-config --cxxflags`
|
||||
LDFLAGS += `tntnet-config --libs`
|
||||
|
||||
+INCLUDES += $(EXTRA_INCLUDES)
|
||||
INCLUDES += -I..
|
||||
|
||||
### The directory environment:
|
||||
--- live-0.2.0/httpd/Makefile
|
||||
+++ live-0.2.0/httpd/Makefile
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
### Includes and Defines (add further entries here):
|
||||
|
||||
+INCLUDES += $(EXTRA_INCLUDES)
|
||||
INCLUDES += -I.
|
||||
|
||||
### The object files (add further files here):
|
||||
--- live-0.2.0/javascript/Makefile
|
||||
+++ live-0.2.0/javascript/Makefile
|
||||
@@ -7,6 +7,7 @@
|
||||
CXXFLAGS += `tntnet-config --cxxflags`
|
||||
LDFLAGS += `tntnet-config --libs`
|
||||
|
||||
+INCLUDES += $(EXTRA_INCLUDES)
|
||||
INCLUDES += -I.. -I$(VDRDIR)/include
|
||||
|
||||
### The directory environment:
|
||||
--- live-0.2.0/pages/Makefile
|
||||
+++ live-0.2.0/pages/Makefile
|
||||
@@ -2,6 +2,7 @@
|
||||
AR ?= ar
|
||||
ECPPC ?= ecppc
|
||||
|
||||
+INCLUDES += $(EXTRA_INCLUDES)
|
||||
INCLUDES += -I.. -I$(VDRDIR)/include
|
||||
|
||||
### The directory environment:
|
||||
12
packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-04_tntnet-2.0.patch
vendored
Normal file
12
packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-04_tntnet-2.0.patch
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
Index: vdr-plugin-live-0.2.0/thread.cpp
|
||||
===================================================================
|
||||
--- vdr-plugin-live-0.2.0.orig/thread.cpp 2011-08-25 21:58:33.000000000 +0200
|
||||
+++ vdr-plugin-live-0.2.0/thread.cpp 2011-08-25 21:58:37.000000000 +0200
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <stdexcept>
|
||||
#include <vdr/tools.h>
|
||||
#include <tnt/tntnet.h>
|
||||
+#include <tnt/tntconfig.h>
|
||||
#include "thread.h"
|
||||
#include "tntconfig.h"
|
||||
|
||||
26
packages/3rdparty/multimedia/vdr-live/rename
vendored
Executable file
26
packages/3rdparty/multimedia/vdr-live/rename
vendored
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
cd $BUILD
|
||||
mv live-${PKG_VERSION} ${PKG_NAME}-${PKG_VERSION}
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-dvbapi"
|
||||
PKG_VERSION="9bef03f"
|
||||
PKG_VERSION="e3200c8"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
17
packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-e3200c8-ffdecsa.patch
vendored
Normal file
17
packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-e3200c8-ffdecsa.patch
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index a8c7d97..6084cec 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -54,9 +54,9 @@ DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
|
||||
OBJS = CAPMT.o DeCSA.o DeCsaTSBuffer.o DVBAPI.o DVBAPISetup.o SCDeviceProbe.o SCDVBDevice.o UDPSocket.o SCCIAdapter.o Frame.o SCCAMSlot.o
|
||||
|
||||
# FFdeCSA
|
||||
-CPUOPT ?= athlon64
|
||||
-PARALLEL ?= PARALLEL_128_SSE
|
||||
-CSAFLAGS ?= -fPIC -O3 -fexpensive-optimizations -funroll-loops -mmmx -msse -msse2 -msse3
|
||||
+CPUOPT ?= pentium
|
||||
+PARALLEL ?= PARALLEL_32_INT
|
||||
+CSAFLAGS ?= -Wall -fPIC -g -O3 -mmmx -fomit-frame-pointer -fexpensive-optimizations -funroll-loops
|
||||
FFDECSADIR = FFdecsa
|
||||
FFDECSA = $(FFDECSADIR)/FFdecsa.o
|
||||
FFDECSATEST = $(FFDECSADIR)/FFdecsa_test.done
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-streamdev"
|
||||
PKG_VERSION="a179771"
|
||||
PKG_VERSION="6a47e20"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-xvdr"
|
||||
PKG_VERSION="c98852f"
|
||||
PKG_VERSION="b62ccbd"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
diff --git a/src/live/livepatfilter.c b/src/live/livepatfilter.c
|
||||
index e811c8c..f1b94fd 100644
|
||||
--- a/src/live/livepatfilter.c
|
||||
+++ b/src/live/livepatfilter.c
|
||||
@@ -447,7 +447,7 @@ void cLivePatFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Le
|
||||
}
|
||||
}
|
||||
|
||||
- m_Streamer->m_Receiver = new cLiveReceiver(m_Streamer, m_Channel->GetChannelID(), m_Streamer->m_Priority, m_Streamer->m_Pids);
|
||||
+ m_Streamer->m_Receiver = new cLiveReceiver(m_Streamer, m_Channel, m_Streamer->m_Priority, m_Streamer->m_Pids);
|
||||
m_Streamer->m_Device->AttachReceiver(m_Streamer->m_Receiver);
|
||||
INFOLOG("Currently unknown new streams found, requesting stream change");
|
||||
m_Streamer->RequestStreamChange();
|
||||
diff --git a/src/live/livereceiver.c b/src/live/livereceiver.c
|
||||
index 34f5ba8..528f65a 100644
|
||||
--- a/src/live/livereceiver.c
|
||||
+++ b/src/live/livereceiver.c
|
||||
@@ -27,10 +27,12 @@
|
||||
#include "livereceiver.h"
|
||||
#include "livestreamer.h"
|
||||
|
||||
-cLiveReceiver::cLiveReceiver(cLiveStreamer *Streamer, tChannelID ChannelID, int Priority, const int *Pids)
|
||||
- : cReceiver(ChannelID, Priority, 0, Pids)
|
||||
+cLiveReceiver::cLiveReceiver(cLiveStreamer *Streamer, const cChannel *Channel, int Priority, const int *Pids)
|
||||
+ : cReceiver(Channel, Priority)
|
||||
, m_Streamer(Streamer)
|
||||
{
|
||||
+ AddPid(0);
|
||||
+ AddPids(Pids);
|
||||
DEBUGLOG("Starting live receiver");
|
||||
}
|
||||
|
||||
diff --git a/src/live/livereceiver.h b/src/live/livereceiver.h
|
||||
index 8d23522..2ccd8bf 100644
|
||||
--- a/src/live/livereceiver.h
|
||||
+++ b/src/live/livereceiver.h
|
||||
@@ -42,7 +42,7 @@ protected:
|
||||
virtual void Receive(uchar *Data, int Length);
|
||||
|
||||
public:
|
||||
- cLiveReceiver(cLiveStreamer *Streamer, tChannelID ChannelID, int Priority, const int *Pids);
|
||||
+ cLiveReceiver(cLiveStreamer *Streamer, const cChannel *Channel, int Priority, const int *Pids);
|
||||
virtual ~cLiveReceiver();
|
||||
};
|
||||
|
||||
diff --git a/src/live/livestreamer.c b/src/live/livestreamer.c
|
||||
index a2d6826..6bafc02 100644
|
||||
--- a/src/live/livestreamer.c
|
||||
+++ b/src/live/livestreamer.c
|
||||
@@ -406,7 +406,7 @@ bool cLiveStreamer::StreamChannel(const cChannel *channel, int priority, cxSocke
|
||||
if (m_NumStreams > 0 && m_Socket)
|
||||
{
|
||||
DEBUGLOG("Creating new live Receiver");
|
||||
- m_Receiver = new cLiveReceiver(this, m_Channel->GetChannelID(), m_Priority, m_Pids);
|
||||
+ m_Receiver = new cLiveReceiver(this, m_Channel, m_Priority, m_Pids);
|
||||
m_PatFilter = new cLivePatFilter(this, m_Channel);
|
||||
m_Device->AttachReceiver(m_Receiver);
|
||||
m_Device->AttachFilter(m_PatFilter);
|
||||
diff --git a/src/xvdr/xvdrclient.c b/src/xvdr/xvdrclient.c
|
||||
index cea1af2..931ea61 100644
|
||||
--- a/src/xvdr/xvdrclient.c
|
||||
+++ b/src/xvdr/xvdrclient.c
|
||||
@@ -1572,7 +1572,7 @@ bool cXVDRClient::processRECORDINGS_GetList() /* OPCODE 102 */
|
||||
}
|
||||
else
|
||||
{
|
||||
- recordingStart = recording->start;
|
||||
+ recordingStart = recording->Start();
|
||||
}
|
||||
}
|
||||
DEBUGLOG("GRI: RC: recordingStart=%lu recordingDuration=%i", recordingStart, recordingDuration);
|
||||
@@ -1584,10 +1584,10 @@ bool cXVDRClient::processRECORDINGS_GetList() /* OPCODE 102 */
|
||||
m_resp->add_U32(recordingDuration);
|
||||
|
||||
// priority
|
||||
- m_resp->add_U32(recording->priority);
|
||||
+ m_resp->add_U32(recording->Priority());
|
||||
|
||||
// lifetime
|
||||
- m_resp->add_U32(recording->lifetime);
|
||||
+ m_resp->add_U32(recording->Lifetime());
|
||||
|
||||
// channel_name
|
||||
m_resp->add_String(recording->Info()->ChannelName() ? m_toUTF8.Convert(recording->Info()->ChannelName()) : "");
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user