Welcome to TiddlyWiki created by Jeremy Ruston, Copyright © 2007 UnaMesa Association
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}
h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}
.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}
.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}
.tabSelected{color:[[ColorPalette::PrimaryDark]];
background:[[ColorPalette::TertiaryPale]];
border-left:1px solid [[ColorPalette::TertiaryLight]];
border-top:1px solid [[ColorPalette::TertiaryLight]];
border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}
#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}
.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background::[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}
#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}
.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}
.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}
.tiddler .defaultCommand {font-weight:bold;}
.shadow .title {color:[[ColorPalette::TertiaryDark]];}
.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}
.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}
.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}
.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}
.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}
.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}
.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}
.imageLink, #displayArea .imageLink {background:transparent;}
.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}
.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}
.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}
.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}
.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}
.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity:60)';}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}
body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}
h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}
hr {height:1px;}
a {text-decoration:none;}
dt {font-weight:bold;}
ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}
.txtOptionInput {width:11em;}
#contentWrapper .chkOptionInput {border:0;}
.externalLink {text-decoration:underline;}
.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}
.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}
/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}
#mainMenu .tiddlyLinkExisting,
#mainMenu .tiddlyLinkNonExisting,
#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}
.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}
.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}
#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}
#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0em 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}
.wizard {padding:0.1em 1em 0em 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0em 0em 0em; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0em;}
.wizardFooter .status {padding:0em 0.4em 0em 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em 0.1em 0.2em;}
#messageArea {position:fixed; top:2em; right:0em; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em 0.2em 0.2em 0.2em;}
#messageArea a {text-decoration:underline;}
.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 1em; margin:0;}
.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0em;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}
.tabset {padding:1em 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}
#contentWrapper {display:block;}
#splashScreen {display:none;}
#displayArea {margin:1em 17em 0em 14em;}
.toolbar {text-align:right; font-size:.9em;}
.tiddler {padding:1em 1em 0em 1em;}
.missing .viewer,.missing .title {font-style:italic;}
.title {font-size:1.6em; font-weight:bold;}
.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}
.tiddler .button {padding:0.2em 0.4em;}
.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}
.footer {font-size:.9em;}
.footer li {display:inline;}
.annotation {padding:0.5em; margin:0.5em;}
* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0em 0.25em; padding:0em 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}
.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}
.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}
.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}
.fieldsetFix {border:0; padding:0; margin:1px 0px 1px 0px;}
.sparkline {line-height:1em;}
.sparktick {outline:0;}
.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}
* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}
.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which use a logographic writing system and need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
.htmlarea .toolbarHA table {border:1px solid ButtonFace; margin:0em 0em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler > fields syncing permalink references jump'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<!--}}}-->
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:
* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* MainMenu: The menu (usually on the left)
* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These InterfaceOptions for customising TiddlyWiki are saved in your browser
Your username for signing your edits. Write it as a WikiWord (eg JoeBloggs)
<<option txtUserName>>
<<option chkSaveBackups>> SaveBackups
<<option chkAutoSave>> AutoSave
<<option chkRegExpSearch>> RegExpSearch
<<option chkCaseSensitiveSearch>> CaseSensitiveSearch
<<option chkAnimate>> EnableAnimations
----
Also see AdvancedOptions
Création du wiki à partir du thème """TiddlyPedia""".
Apprentissage de la mise en page
Ajout Flashage ~NB4 sous Windows
Ajout Install OWRT sur le DockStar
<tabs AideMemoire>
<tab Format données>
!1 -- Format des données
|!Option|!Syntaxe|!Résultat|!Anglais|h
|texte en gras|{{{''gras''}}}|''gras''|''bold''|
|texte en italique|{{{//italique//}}}|//italique//|//italic//|
|texte souligné|{{{__souligné__}}}|__souligné__|__underlined__|
|texte barré|{{{--barré--}}}|--barré--|--strikethrough--|
|texte mis en exposant|{{{texte^^exposant^^}}}|texte^^exposant^^|text^^super^^|
|texte mis en indice|{{{texte~~indice~~}}}|texte~~indice~~|text~~sub~~|
|texte mis en évidence|{{{@@mis en évidence@@}}}|@@mis en évidence@@|@@highlighted@@|
|texte en de taille fixe|{{{ {{{taille fixe}}} }}}|{{{taille fixe}}}|{{{monospaced}}}|
|texte bleu|{{{@@color:#00f;texte bleu@@}}}|@@color:#00f;texte bleu@@| .|
|fond vert|{{{@@bgcolor:#0f0;fond vert@@}}}|@@bgcolor:#0f0;fond vert@@| .|
</tab>
<tab Images>
!2 - Format des images
Les 4 formats possibles pour intégrer des images sont les suivants :
|!Affichage|!Syntaxe|!Exemple|h
|Affichage simple d'une image|{{{[img[nom_fichier.ext]]}}}<br><br>{{{[img[Francais.gif]]}}}|[img[Francais.gif]]|
|~|{{{[img[titre|nom_fichier.ext]]}}}<br><br>{{{[img[Ceci est un message d'aide|Francais.gif]]}}}|[img[Ceci est un message d'aide|Francais.gif]]|
|Image servant de lien vers une autre page|{{{[img[nom_fichier.ext][lien]]}}}<br><br>{{{[img[Francais.gif][images/index.html]]}}}|[img[Francais.gif][images/index.html]]|
|~|{{{[img[titre|nom_fichier.ext][lien]]}}}<br><br>{{{[img[Ceci est un message d'aide|Francais.gif][images/index.html]]}}}|[img[Ceci est un message d'aide|Francais.gif][images/index.html]]|
Le message d'aide est optionnel.
[<img[En Français|Francais.gif][images/Francais.gif]][>img[En Anglais|Anglais.gif][images/Anglais.gif]] On peut aussi insérer des images à gauche ou à droite d'un texte, respectivement avec {{{[<img[}}}) et avec {{{[>img[}}}). Il est aussi possible de s'affranchir de ces images @@clear(left):clear(right):display(block) en utilisant des codes CSS @@ tels que {{{@@clear(left):clear(right):display(block) code CSS @@}}}
{{{
[<img[En Français|Francais.gif][images/Francais.gif]][>img[En Anglais|Anglais.gif][images/Anglais.gif]] On peut aussi insérer des images à gauche ou à droite d'un texte, respectivement avec {{{[<img[}}}) et avec {{{[>img[}}}). Il est aussi possible de s'affranchir de ces images @@clear(left):clear(right):display(block) en utilisant des codes CSS @@
}}}
</tab>
<tab Listes et Citations>
!3 -- Listes (//Lists//) et citations (//Blockquotes//)
{{{
* liste simple de niveau 1
** liste simple de niveau 2
*** liste simple de niveau 3
**** liste simple de niveau 4
***** liste simple de niveau 5
# liste numérotée de niveau 1
## liste numérotée de niveau 2
### liste numérotée de niveau 3
#### liste numérotée de niveau 4
##### liste numérotée de niveau 5
; liste de definition : terme défini
: liste de definition : description
}}}
<<<
* liste simple de niveau 1
** liste simple de niveau 2
*** liste simple de niveau 3
**** liste simple de niveau 4
***** liste simple de niveau 5
# liste numérotée de niveau 1
## liste numérotée de niveau 2
### liste numérotée de niveau 3
#### liste numérotée de niveau 4
##### liste numérotée de niveau 5
; liste de definition : terme défini
: liste de definition : description
<<<
{{{
> citation de niveau 1
>> citation de niveau 2
>>> citation de niveau 3
>>>> citation de niveau 4
>>>>> citation de niveau 5
<<<
citation
<<<
}}}
<<<
> citation de niveau 1
>> citation de niveau 2
>>> citation de niveau 3
>>>> citation de niveau 4
>>>>> citation de niveau 5
> citation
<<<
</tab>
<tab Niveaux de Titres>
!4 -- Titre de niveaux (//Titles//)
{{{
!Titre de niveau 1
!!Titre de niveau 2
!!!Titre de niveau 3
!!!!Titre de niveau 4
!!!!!Titre de niveau 5
}}}
<<<
!Titre de niveau 1
!!Titre de niveau 2
!!!Titre de niveau 3
!!!!Titre de niveau 4
!!!!!Titre de niveau 5
<<<
</tab>
<tab Tableaux>
!5 - Tableaux (//Tables//)
{{{
|classe CSS|k
|!titre de colonne 1|!titre de colonne 2|h
|ligne 1, colonne 1|ligne 1, colonne 2|
|ligne 2, colonne 1|ligne 2, colonne 2|
|>|Plusieurs colonnes de large|
|Plusieurs lignes de hauteur| … |
|~| … |
|texte aligné à gauche |espace laissé à droite |
| texte aligné à droite| espace laissé à gauche|
| texte centré | espace laissé à gauche ''et'' à droite |
|Propriété_CSS:valeur;…| … |
|Légende|c
}}}
<<<
|classe CSS|k
|!titre de colonne 1|!titre de colonne 2|h
|ligne 1, colonne 1|ligne 1, colonne 2|
|ligne 2, colonne 1|ligne 2, colonne 2|
|>|Plusieurs colonnes de large|
|Plusieurs lignes de hauteur| … |
|~| … |
|texte aligné à gauche |espace laissé à droite |
| texte aligné à droite| espace laissé à gauche|
| texte centré | espace laissé à gauche ''et'' à droite |
|Propriété_CSS:valeur;…| … |
|Légende|c
<<<
''Note :''
* Le marqueur {{{>}}} fusionne horizontalement une cellule avec celle immédiatement située à sa droite.
* Le marqueur {{{~}}} fusionne verticalement une cellule avec celle immédiatement située au dessus d'elle.
</tab>
<tab Liens>
!6 - Liens et hyperliens
* Les liens
|!Détails|!Syntaxe|!Exemple|!Résultat|h
|Lien interne ou externe|{{{[[texte|WikiWord ou URL]]}}}|{{{[[Page index.html en local|index.html]]}}}|[[Page index.html en local|index.html]]|
|Image|{{{[img[nom de l'image|chemin/image.ext]]}}}|{{{[img[Français|Francais.gif]]}}}|[img[Français|Francais.gif]]|
* Les //~WikiWord// sont des mots réservés qui sont automatiquement transformés en hyperliens vers leurs éléments (//tiddlers//) respectifs
** la transformation automatique peut être annulée en faisant précéder les //~WikiWord// par un signe //tilde// ({{{~}}}). Exemple : {{{~WikiWord}}}
* Les [[LiensEnjolivés]] (//~PrettyLinks//) sont entourés de doubles crochets et contiennent le nom de l'élément concerné. Exemple : {{{[[nom de l'élément]]}}}
** En complément, un titre générique ou une description peuvent être ajoutés. Ils doivent être séparés par un caractère //pipe// ({{{|}}})) ce qui donne {{{[[titre|lien]]}}}<br>'''N.B.:''' Dans ce cas, la cible peut être soit un fichier local, soit l'URL d'un site Web local ou distant.
</tab>
<tab Mise en Page>
!Eléments de Présentation & Feuilles de style
Les //éléments// suivis par ^^(*)^^ ont été modifiés sur ce site.
|>|>| ![[PageTemplate]]^^(*)^^ |
|>|>| [[SiteTitle]]^^(*)^^ - [[SiteSubtitle]]^^(*)^^ |
| [[MainMenu]]^^(*)^^ |[[DefaultTiddlers]]^^(*)^^<br>[[HeaderToolbar]]^^(+)^^<br><br>[[ViewTemplate]]<br>[[EditTemplate]]|[[SideBarOptions]]^^(*)^^ |
|~|~| [[OptionsPanel]]<br>[[AdvancedOptions]] |
|~|~| [[SideBarTabs]] |
|>|>| [[SiteUrl]]^^(*)^^ |
|>|>| ![[SideBarTabs]] |
| [[Timeline|TabTimeline]] | [[All|TabAll]] | [[Tags|TabTags]] |
|>|>| [[More|TabMore]] |
| [[Missing|TabMoreMissing]] | [[Orphans|TabMoreOrphans]] | [[Shadowed|TabMoreShadowed]] |
|>|>|>| ![[StyleSheet]]^^(*)^^ |
| [[Layout|StyleSheetLayout]] | [[Colors|StyleSheetColors]] | [[Print|StyleSheetPrint]] | [[Palette|ColorPalette]] |
</tab>
<tab Divers>
!8 -- Divers
* du code HTML peut être intégré directement dans un élément, en l'entourant par les codes HTML suivants : {{{<html> … </html>}}}
* {{{<br>}}} force un saut de ligne (comme en HTML)
* {{{----}}} insère une ligne horizontale (comme le code {{{<HR> en HTML}}})
* {{{<<Nom de la macro>>}}} appelle l'élément correspondant __//nom de la macro//__
* Pour masquer certaines parties d'un élément et ne pas le faire afficher, il doit être entouré des codes suivants :
** début de la zone de commentaire : {{{/%}}}
** fin de la zone de commentaire : {{{%/}}}
</tab>
</tabs>
[[17 Aout 2010]]
[[18 Aout 2010]]
[[24 Aout 2010]]
[[28 Aout 2010]]
[[30 Aout 2010]]
Je l'ai acheté en juillet 2010 pour 16 € (si, si !!). De nombreuses informations sur ce petit ~PlugComputer [[ici|http://www.neufbox4.org/forum/viewtopic.php?id=1383]].
La méthode de Eric Cooper [[ici|http://www.cs.cmu.edu/~ecc/dockstar-howto.html]] est pour l'instant la plus répandue. Via patch et recompilation, elle permet de conserver la table de partition existante et aussi d'ajouter le support des leds. Mais elle nécessite la compilation de tout package kmod avant installation !
Au contraire, voila ce que j'ai fait pour flasher un DockStar (DS) avec Backfire 10.03 standard, permettant ''l'installation de tout package dont kmod, sans recompilation''.
Il est basé sur le wiki de Kyle Anderson : http://wiki.xkyle.com/Install_Openwrt_on_a_Seagate_Dockstar. Mais cette méthode a le grand avantage de ne pas nécessiter de port série.
__Principe__ : En fait, comme Backfire n'utilise pas en standard le même partitionnement MTD que la distribution Pogoplug initiale, il faut donc passer par un kernel intermédiaire permettant de le modifier.
1. Depuis Pogoplug initial (@IP en DHCP) :
* Débrancher l'ADSL de sa box après avoir mis ces fichiers sur clé USB ([[openwrt-kirkwood-uImage-ramroot|http://xkyle.com/packages/openwrt-kirkwood-uImage-ramroot]] et [[blparam|http://plugapps.com/os/pogoplug/uboot/blparam]]). Comme cela, pas de MAJ du DS.
* Brancher le DS et récupérer son @IP dans les stats DHCP de la box.
* Telnet @IP. Login = root/stxadmin
* Si besoin, sauvegarde sur clé USB (Fat32 OK - Voir "3 - Sauvegarder le firmware d'origine" du tuto de Cuagn sur neufbox4).
* Puis les commandes suivantes :
{{{
killall -9 hbwd
killall -9 hbplug
mount /dev/sda1 /mnt
cd /mnt
./blparam arcNumber=2097
./blparam mainlineLinux=yes
./blparam bootargs_root=root=/dev/mtdblock2 rootfstype=jffs2 panic=10
dd if=openwrt-kirkwood-uImage-ramroot of=dockstar-uImage bs=128k conv=sync
flash_eraseall /dev/mtd1
nandwrite /dev/mtd1 dockstar-uImage
reboot
}}}
2. Depuis Openwrt intermédiaire (@IP fixe en 192.168.1.1) :
* Rebrancher l'ADSL de sa box
* telnet 192.168.1.1 avec les commandes suivantes :
{{{
/etc/init.d/dnsmasq stop
udhcpc -i br-lan
mkdir /target
mtd erase mtd2
mount /dev/mtdblock2 /target -t jffs2
cd /target
wget http://downloads.openwrt.org/backfire/10.03/kirkwood/openwrt-kirkwood-rootfs.tgz
tar xzvpf openwrt-kirkwood-rootfs.tgz
#rm openwrt-kirkwood-rootfs.tgz
cd ..
umount /target
cd /tmp
wget http://downloads.openwrt.org/backfire/10.03/kirkwood/openwrt-kirkwood-uImage
opkg update
opkg -dest ram install coreutils-dd
/tmp/usr/bin/dd if=openwrt-kirkwood-uImage of=dockstar-uImage bs=128k conv=sync
opkg -dest ram install mtd-utils
/tmp/usr/sbin/flash_eraseall /dev/mtd1
/tmp/usr/sbin/nandwrite /dev/mtd1 dockstar-uImage
reboot
}}}
3. Openwrt final (@IP fixe en 192.168.1.1) :
* telnet 192.168.1.1 (ou http://192.168.1.1) et initialisation.
J'ai crée ce script (à adapter) pour une post-configuration de l'installation :
{{{
#!/bin/sh
# Script pour finalisation Install DockStar par fxmx86
# initialisation
/etc/init.d/uhttpd enable
/etc/init.d/uhttpd start
/etc/init.d/dnsmasq disable
/etc/init.d/dnsmasq stop
opkg update
opkg install luci
# Réseau
cat > /etc/config/network << EOT
config interface loopback
option ifname lo
option proto static
option ipaddr 127.0.0.1
option netmask 255.0.0.0
config interface lan
option ifname eth0
option proto static
option ipaddr 192.168.1.2
option netmask 255.255.255.0
option gateway 192.168.1.1
option dns 192.168.1.1
option type bridge
option defaultroute 0
option peerdns 0
EOT
# Date
cat > /etc/config/system << EOT
config system
option hostname DockStar
option zonename Europe/Paris
option timezone CET-1CEST,M3.5.0,M10.5.0/3
config rdate
list server ac-ntp0.net.cmu.edu
list server ac-ntp1.net.cmu.edu
list server tick.greyware.com
list server ntp.xs4all.nl
list server ptbtime1.ptb.de
list server ptbtime2.ptb.de
list server ptbtime3.ptb.de
list server cudns.cit.cornell.edu
EOT
# serveur samba
opkg install samba-server
cat > /etc/samba/smb.conf << EOT
[global]
syslog = 0
syslog only = yes
workgroup = OpenWrt
server string = OpenWrt Samba Server
security = share
encrypt passwords = yes
guest account = root
local master = yes
name resolve order = lmhosts hosts bcast
[owrt]
comment = Disque OpenWRT
path = /
browseable = yes
writable = yes
public = yes
[datas]
comment = Datas OpenWRT
path = /datas
browseable = yes
writable = yes
public = yes
EOT
echo 127.0.0.1 DockStar >> /etc/hosts
/etc/init.d/samba enable
/etc/init.d/samba start
# Automount USB vfat
opkg install kmod-usb-storage
opkg install kmod-usb2
opkg install kmod-fs-vfat
opkg install kmod-nls-cp437
opkg install kmod-nls-iso8859-1
opkg install block-hotplug
cat >> /etc/config/fstab << EOT
config mount
option enabled 1
option device /dev/sda1
option target /datas
option fstype vfat
option options noatime,sync
EOT
sed -i "s/echo '\# /#echo '\#/" /etc/init.d/fstab
# explication : http://wiki.openwrt.org/doc/uci/fstab
/etc/init.d/fstab enable
/etc/init.d/fstab start
# Leds si patch kernel
# infos dans /sys/class/leds
opkg install kmod-leds-gpio
grep -q "config led" /etc/config/system || {
cat >> /etc/config/system << EOT
config led
option sysfs 'dockstar:green:health'
option trigger netdev
option dev eth0
option mode 'link tx rx'
config led
option sysfs 'dockstar:orange:misc'
option trigger nand-disk
EOT
}
# mpd et carte son USB
opkg install alsa-lib
opkg install kmod-usb-audio
opkg install kmod-input-core
opkg install mpd
opkg install mdnsresponder
opkg install libffmpeg
opkg install libspeex
# anyremote
opkg install anyremote
/etc/init.d/anyremote enable
/etc/init.d/anyremote start
# flite
opkg install flite
flite -t "1 2 3 4 5 6 7 8 9" &
reboot
}}}
<div class='title' macro='view title'></div>
<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>
<div class='editor' macro='edit title'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
''Q01 Revenir au firmware SFR :''
* Cas 1 : Vous avez accès à l'interface web : RDV sur l'onglet "Console ~NB4" et tapez "upgrade-ob4 sfr -q" dans la commande shell. Validez, patientez quelques minutes le temps du téléchargement, la box reboote toute seule : c'est fait !
* Cas 2 : Placez sur une clé USB un fichier vide appelé "updatesfr" et rebooter la box. Le temps du téléchargement, la box reboote toute seule : voilà !
* Autres possibilités, moins pratiques :
** Modifier ob4-full.conf en passant le paramètre UPDATESFR à "Oui" et un reboot.
** Connectez vous à la console (cf Q02 ci-dessous) et tapez "touch /tmp/sfrupdate; autoconf start".
** Dans les 2 cas, au bout de qq minutes, la box va se mettre à jour toute seule...
''Q02 Accès SSH et ajout d'un password pour ob4 :''
Pour avoir un accès SSH (pwd obligatoire), se connecter d'abord à la console par "telnet @~IPBox 1287" et se loguer ob4 sans pwd. Ensuite tapez "passwd ob4" pour affecter un pwd à ob4. Un accès SSH depuis l'extérieur va être ouvert automatiquement via iptables...
C'est fini.
D'autres infos sur le [[forum|http://www.neufbox4.org/forum/viewtopic.php?id=2087]].
!Préalable :
Avant tout flashage, consultez la page d'accueil http://192.168.1.1 de votre ~NB4. Si en haut à droite, votre firmware standard contient une version X.X.~X-IMS, vous ''ne pouvez pas utiliser le mod et conserver la téléphonie''.
''Par ailleurs, si vous modifiez une neufbox, prenez vos responsabilités :''
Si vous pensez qu'il y a des problèmes avec votre ligne ADSL, remettez une neufbox d'origine avant d'appeler la hotline (voir la FAQ pour savoir comment faire). De même, si vous avez besoin d'Internet/du téléphone sans aucune interruption, le mieux est d'acheter une neufbox à 50 € pour y installer le mod.
Une dernière chose : Faites une sauvegarde de votre config nvram via http://192.168.1.1/6_1, pour pouvoir la réinstaller après flashage (fonctionne aussi sur une v 1.5.6).
!Flashage :
La méthode la plus efficace pour flasher la ~NB4 est basée sur un script python appelé flashimage.py (Voir [[ici|http://www.neufbox4.org/wiki/index.php?title=Reflasher_un_firmware_:_m%C3%A9thode_flashimage.py]] pour plus d'infos). Elle impose un PC sous Linux ou démarré avec un ~LiveCD Linux...
Si vous êtes sous windows et vous ne connaissez pas du tout Linux, voici comment utiliser ce script facilement, avec une procédure simple et instructive basée sur ~VMWare Player et une ''VM sous ~OpenWRT 10.03''. Ainsi tout PC sous windows pourra flasher une box directement avec mon mod ou un autre firmware.
# Télécharger les fichiers suivants :
## Pour utiliser la machine virtuelle sous ~OpenWRT, récupérer le player [[ici|http://download3.vmware.com/software/vmplayer/VMware-player-1.0.6-80404.exe]] (28,7 Mo). Si besoin, d'autres versions sont disponibles [[ici|http://www.vmware.com/download/player/download.html]].
## La VM sous ~OpenWRT se trouve [[là|ob4/OpenWRT-10.03.7z]] (moins de 3 Mo, ~OpenWRT est une distrib très optimisée !).
# Démarrer la machine virtuelle en faisant un double clic sur le fichier ~OpenWRT-10.03.vmx. Celle-ci va démarrer OWRT 10.03 en quelques secondes. Quand la console s'est stabilisée, appuyer sur entrée et taper "flashimage" (en clavier anglais donc "flqshi,qge". Le plus simple est de taper "fl" puis TAB pour complétion :-).
# Suivre les quelques instructions pour flasher votre Box.
# Après reboot, votre box démarre sur son nouveau firmware. Réinstaller alors votre ancienne config nvram via http://192.168.1.1/6_1.
C'est fini, de nouvelles possibilités s'offrent maintenant à vous : ''C'est parti !!!''
PS : Le process va ressembler à ca :
{{{
BusyBox v1.15.3 (2010-04-06 06:09:35 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
Backfire (10.03, r20728) --------------------------
* 1/3 shot Kahlua In a shot glass, layer Kahlua
* 1/3 shot Bailey's on the bottom, then Bailey's,
* 1/3 shot Vodka then Vodka.
---------------------------------------------------
root@OpenWrt:/# flashimage
Initialisation et download de python
Terminated
Downloading http://downloads.openwrt.org/backfire/10.03/x86/packages/Packages.gz.
Inflating http://downloads.openwrt.org/backfire/10.03/x86/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/packages.
Installing python-mini (2.6.4-3) to root...
Downloading http://downloads.openwrt.org/backfire/10.03/x86/packages/python-mini_2.6.4-3_x86.ipk.
Installing libpthread (0.9.30.1-42) to root...
Downloading http://downloads.openwrt.org/backfire/10.03/x86/packages/libpthread_0.9.30.1-42_x86.ipk.
Installing librt (0.9.30.1-42) to root...
Downloading http://downloads.openwrt.org/backfire/10.03/x86/packages/librt_0.9.30.1-42_x86.ipk.
Installing zlib (1.2.3-5) to root...
Downloading http://downloads.openwrt.org/backfire/10.03/x86/packages/zlib_1.2.3-5_x86.ipk.
Configuring librt.
Configuring libpthread.
Configuring zlib.
Configuring python-mini.
Download de flashimage
Connecting to svn.gna.org (78.40.125.80:80)
flashimage.py 100% |*******************************| 9412 --:--:-- ETA
Voulez vous flasher votre NB4 avec le mod ob4-full fxmx86 (O/n) ?
Download du firmware fxmx86
Connecting to fxmx86.mine.nu (79.95.72.170:80)
FLSHOb4-full.gz 100% |*******************************| 6993k 00:00:00 ETA
Flashage du firmware fxmx86 : rebooter votre box et passez la en mode
Download. Branchez votre PC sur le port TV.
Appuyez sur entree pour continuer...
+++++++++++++++++++++++++++++++++++++++++++++++
Image: FLSHOb4-full
> Size: 8388608 bytes
+++++++++++++++++++++++++++++++++++++++++++++++
br-lan ethernet address: 00:0C:29:F1:73:51
> Info request on broadcast
...
}}}
C'est moi :
[img[fxm86|http://fxmx86.mine.nu/download/01-20100130083647-01.jpg]]
!Pour installer le mod Ob4-Full le plus simplement du monde :
Il suffit de :
1°/ Faire un "ping fxmx86.mine.nu" pour obtenir son adresse IP = ~ADR1
2°/ Dans la ~NB4, définir dans Réseau/DNS que l'adresse IP ~ADR1 a comme nom d'hôte (sans les "") :
* "nb4general.neufbox.neuf.fr" pour flashage depuis une version 2.x
* "general.nb4dsl.neufbox.neuf.fr" pour flashage depuis une version 3.x
3°/ Reboot ~NB4. Après flashage automatique, reboot auto de la ~NB4.
4°/ Supprimer l'entrée DNS dans Réseau/DNS pour que votre box puisse refonctionner comme d'habitude.
Ca y est, le mod est installé ! Vous pouvez voir l'interface web à son adresse habituelle (http://192.168.1.1 en général)
! Ajouts/Modifications faits au firmware 2.1.6 standard :
* Modification importante des scripts de démarrage pour pouvoir modifier tout ou partie des fichiers de la ~NB4, changer la configuration et/ou rajouter des programmes issus d'~OpenWRT, dans l'espace flash disponible ou sur une clé USB.
* Ajout des programmes minimas ~OpenWRT pour l'installation de programmes supplémentaires.
* Modification de Samba pour ajouter les partages "ob4" et "datas", correspondant à / et /datas.
* Modification de wget pour éviter les MAJ intempestives du firmware par SFR.
* Modification pour lancement automatique des scripts /etc/init.d/ob4_* à la fin du démarrage de la box.
* Ajout des divers automatismes pour lancer Ob4-Usb.
* Ajout des scripts ob4_key pour gérer les boutons de la box et ob4_cal pour le calendrier automatique du wifi et des leds.
* Modification possible du driver ADSL pour réduire la latence de l'accès (source SGDA).
* Ajout d'un compte ob4 sans mot de passe, pour se connecter avec les droits root.
* Ajout de l'appli dtach pour conserver les sessions vivantes entre les déconnexions.
* Gestion de /etc/ob4-full.conf pour le paramétrage du firmware.
* ...
! Divers :
* Accès aux sources :
Voici une archive contenant les fichiers modifiés/ajoutés au firmware 2.1.6 standard, pour former le mod ob4-full : [[sources ob4-full|ob4/SrcOB4-FULL+USB.tar.bz2]]
* Mise à Jour avec une nouvelle version de ob4-Full :
#er cas : Il ne s'agit pas ici de flasher avec une image complète mais seulement de mettre à jour la partie de la flash contenant le firmware principal. Ceci permet de conserver la config nvram. Mettre le firmware sur la clé USB dans le répertoire datas, par ex., et depuis la console, taper "flashcp -v /datas/FW /dev/mtd-main". Une fois, le flashage achevé, taper "reboot". C'est fait.
#eme cas : voir la page [[Flashage]].
! Le mod ~Ob4-Full+USB - Ouverture et ajout d'applications facile.
* Présentation :
Avec l'aide de certains membres de notre communauté, je vous prépare depuis de longs mois, un firmware maison basé sur la dernière V 2.1.6.
** Vous voulez contrôler le Wifi/les Leds de votre Box en auto ou en manuel : pas de pb !
** Vous voulez un accès complet à votre Box : c'est prévu !
** Encore mieux, vous voulez ajouter et lancer facilement des applications sur votre Box : OK !
La configuration de la box et des add-on se fait par de simples fichiers texte placés sur clé USB.
* Quelques exemples :
** Ce ~TiddlyWiki est hébergé sur le serveur web de ma ~NB4.
** Cette [[photo|Fxmx86]] est issue de la détection de mouvement de la webcam branchée sur ma box.
** Vous pouvez [[ici|http://fxmx86.mine.nu:86/]] consulter les stats réseaux de ma ~NB4 :-)
** Vous pouvez [[là|http://fxmx86.mine.nu:8082/]] (Firefox only) deviner ce que filme la ~NB4 :-)
* Constituants :
Voici de quoi est constitué ce firmware amélioré et plus ouvert :
# Une 1e partie "Amélioration du confort", basée sur le firmware Ob4-Full. Il intégre l'accès au rootfs complet, le wifi ON/OFF ou le boost ADSL en appuyant sur le capot, le dtach pour les sessions, le ON/OFF des lumières suivant un calendrier, ... avec un moyen simple de retour au firmware standard. Tout ceci est paramétré facilement par un fichier [[ob4-full.conf]] sur clé USB.
# Une 2e partie "Ajouts de fonctionnalités sur une clé", basée sur Ob4-Usb. Il ajoute par ex un serveur FTP, un lecteur mp3 ou mpd, le download de fichiers/torrents, un site de vidéo-surveillance (webcam et détection de mouvement), un site web ou d'autres programmes à venir... Tout ceci est encore paramétré facilement avec une arborescence par fonction et un fichier [[ob4-usb.conf]] sur clé USB (128 Mo mini + vos besoins de stockage, dédiée si possible). L'exécution de la fonction se fait simplement en appuyant sur le bouton de la box. Une fois la fonction terminée, la box clignote et on peut retirer la clé pour utiliser les fichiers.
* Installation :
# Le firmware [[ob4-full|ob4/FLSHOb4-full.gz]] est à flasher avec le script python flashimage.py. RDV [[ici|Flashage]] pour une installation simplifiée.
# Extraire [[ob4-usb|ob4/ob4-usb.zip]] à la racine d'une simple clé USB formatée en ~FAT32 (ou ext3).
# Consulter les pages Ob4-Full et Ob4-Usb. Vous pouvez aussi trouver dans cette [[FAQ]] d'autres informations utiles.
* Contenu de ob4-usb :
/opt est utilisé pour stockés les binaires. /datas contient configuration, scripts et données du mod ob4-usb : En particulier, les fichiers de configuration principaux sont ob4-usb.conf et ob4-full.conf.
* Fonctionnement :
# Dans /datas, copier les 2 fichiers ob4-usb.ref et ob4-full.ref en ob4-usb.conf et ob4-full.conf puis adapter les avec un simple bloc-note selon vos besoin (Attention à limiter la charge sur la box en ne lançant pas trop de add-ons en simultané).
# Au branchement de la clé, la led de service clignote une fois si la ~NB4 détecte ob4-usb. Nota : au premier branchement de la clé, l'initialisation de /opt peut durer qq minutes.
# La mise en route des services additionnels paramétrés dans ob4-usb.conf se fait en appuyant une fois sur le bouton service. Le voyant Wan clignotant de la ~NB4 indique que ob4-usb est en cours. L'arrêt s'effectue en ré-appuyant sur service.
# Pour avoir une autre configuration de ob4-usb, copier ob4-usb.ref dans ob4-usb2.conf et adapter le. Pour l'utiliser, appuyer 2 fois sur service. Avec ob4-usb3.conf, vous pouvez avoir une 3eme config, lancée en appuyant 3 fois sur service.
* Explications supplémentaires :
# Ordre de lancement des add-ons : D'abord la mise à jour de ob4-full.conf est faite, pour les fonctions intégrées au firmware. Puis les démons (dont le nom finit en xxxd) sont lancés et restent allumés. Puis les autres add-ons sont lancés successivement par ordre alphabétique.
# Un log de l'exécution de ob4-usb est enregistré sur la clé, dans /datas/core/ob4-usb.log (ou \\192.168.1.1\datas\core\ob4-usb.log via le partage de la box). Il vous permettra d'analyser ce qui se passe si vous ne comprenez pas le comportement de ob4-usb.
# Si la clé est enlevée sans arrêter ob4-usb, le système essaye "au mieux" d'arrêter ob4-usb et de démonter correctement la clé.
# Il est possible de lancer ob4-usb depuis la console : taper simplement "ob4-usb". L'affichage de l'exécution est disponible en temps réel dans la session ob4-usb-dtach (taper u+enter lors de l'accès à la console).
* Mise à Jour avec une nouvelle version de ob4-usb :
Supprimer /opt de la clé et comme pour l'install, extraire la nouvelle version de [[ob4-usb.zip|ob4/ob4-usb.zip]] à la racine. Les nouveaux scripts viendront écrasés les anciens mais votre propre configuration ne sera pas affectées par les exemples en .ref.
* Clignotement indicatif des leds :
{{{
attente = ledctl mode downloading
court travail fini = ledctl green blinkonce
long travail fini = ledctl mode demo
pb = ledctl mode panic
}}}
<!--{{{-->
<div id='header'>
</div>
<div id='sidebar'>
<div id='titleLine'></div>
<span id='siteTitle' refresh='content' tiddler='SiteTitle'></span>- <span id='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
Le p'tit Wiki de [[Fxmx86]]
! Introduction :
Vous avez une ~NeufBox4 pour votre accès Internet ? Une fois moddée (modifiée), elle peut vous rendre bien d'autres services !
Comme un petit PC, elle peut exécuter des taches simples, de facon [[éconologique|http://www.econologie.com]] (0 Watt en fait, puisqu'elle est déjà allumée en permanence).
Vous utilisez un PC :
* Pour télécharger (la dernière image ISO de votre distrib Linux préférée) : votre ~NB4 peut aussi le faire.
* Comme serveur web (pour un wiki comme celui-ci ou pour une autre appli simple...) : votre ~NB4 peut aussi le faire, c'est [[l'auto-hébergement|http://www.auto-hebergement.fr/]].
* Comme serveur de fichier ou serveur FTP : votre ~NB4 peut aussi le faire (certes, un peu moins vite : env 3-4 Mo/s mais c'est suffisant vers Internet).
* Pour écouter vos ~MP3 (copie de vos propres ~CDs) : votre ~NB4 (+ 1 carte son USB) peut aussi le faire (et être commandé en Wifi depuis votre dernier Android/~IPhone).
* Comme serveur domotique/télésurveillance : votre ~NB4 (+ d'autres matériels) peut aussi le faire.
* Comme ... : votre ~NB4 peut peut-être le faire. Ne bridez pas votre imagination !
!Mon wiki sur la ~NeufBox4 et en particulier mon mod :
* Le mod [[Ob4-Full+USB]].
* L' [[Install]] ultra simplifiée du mod en 5 minutes.
* Le [[Flashage]] d'une ~NeufBox4 depuis un PC sous Windows (moins facile).
* Le wiki concernant l'ancienne version de mon mod ([[v15|NB4-v15.html]]).
!Pas directement lié à la ~NeufBox4 :
* L'installation de ~OpenWRT sur le DockStar.
!Très éloigné de la ~NeufBox4 :
* Des infos tellement intéressantes sur notre futur à plus ou moins long terme et comment s'y préparer (un peu) :
** [[JM Jancovici|http://www.manicore.com]]
** [[Eric Souffleux|http://www.generationsfutures.net]]
* Dans l'objectif de réduire mon propre [[bilan carbone|http://www.bilancarbonepersonnel.org]] mais aussi d'améliorer ma condition physique de sédentaire (celle de 90% de la population) : [[Le velomobile révolutionnaire pour faire du fitness|http://fitnesscar.free.fr/fitnesscar-plan.html]]
/***
http://tiddlystyles.com/#theme:TiddlyPedia
***/
/*{{{*/
body{
background: #f9f9f9 url(headbg.jpg) no-repeat top left;
}
#titleLine{
display: block;
background: transparent url(wiki.png) no-repeat 18px -7px;
_background: transparent;
height: 120px;
_height: 135px;
width: 150px;
color: #000;
border: 1px;
padding: 0;
margin: 0;
}
* html #titleLine{
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='wiki.png',sizingMethod='scale');
}
#contentWrapper #siteTitle a{
display: inline;
font-weight: bold;
color: #000;
font-size: 13px;
}
#siteSubtitle{
padding: 0;
}
#siteTitle, #mainMenu{
position: static;
}
#contentWrapper #sidebar{
top: 0;
left: 0;
}
#displayArea {
margin: 0 0 0 15em;
}
#messageArea{
position: fixed;
top: 0;
right: 0;
font-size: 10px;
border: 1px solid #aaa;
background: #fff;
z-index: 25;
}
#messageArea a:link{
color: #002bb8;
text-decoration: none;
}
#messageArea a:hover{
text-decoration: underline;
}
.viewer{
background: #fff;
border: 1px solid #aaa;
padding: 1em;
margin: 0;
}
.body{
padding: 1px;
}
.title{
background: #fff;
border: 1px solid #aaa;
display: inline;
margin-left: .5em;
padding: 2px .5em;
border-bottom: 0;
font-weight: bold;
color: #000;
font-size: 1.2em;
}
.toolbar{
visibility: visible;
display: inline;
padding: 0;
font-family: sans-serif;
}
.toolbar a.button:link,.toolbar a.button:visited{
background: #fff;
border: 1px solid #aaa;
color:#002bb8;
font-size: 11px;
padding-bottom: 0;
margin-right: .25em;
}
/* TiddlyPedia was Created by Clinton Checketts based on the Monobook skin of Wikipedia */
#contentWrapper .toolbar .button:hover{
border-bottom: 1px solid #fff;
background: #fff;
color:#002bb8;
}
.toolbar a.button:hover{
border-bottom: 1px solid #fff;
background: #fff;
color:#000;
}
#displayArea .viewer a,a.button:link,a.button:visited,
a.tiddlyLink:link,a.tiddlyLink:visited,
#sidebarOptions .sliderPanel a{
color:#002bb8;
background: transparent;
border: 0;
}
.viewer a:hover,a.button:hover,a.button:active,
a.tiddlyLink:hover,a.tiddlyLink:active,
.viewer a.button:hover,
#sidebarOptions .sliderPanel a:hover{
color:#002bb8;
background: transparent;
text-decoration: underline;
}
#mainMenu{
font-family: sans-serif;
text-align: left;
font-size: x-small;
width: 100%;
margin: 0;
padding: 0;
}
#mainMenu h1{
font-size: 11px;
font-weight: normal;
padding: 0;
margin: 0;
background: transparent;
}
#mainMenu ul{
font-size: 11px;
border: 1px solid #aaa;
padding: .25em 0;
margin: 0;
list-style-type: square;
list-style-image: url(bullet.gif);
background: #fff;
width: 100%;
}
#mainMenu li{
margin: 0 0 0 2em;
padding: 0;
}
#contentWrapper #mainMenu a:link,#contentWrapper #mainMenu a:visited{
color:#002bb8;
padding: 0;
margin: 0;
background: transparent;
}
#mainMenu .externalLink {
text-decoration: none;
}
#mainMenu .externalLink:hover {
text-decoration: underline;
}
#sidebar{
padding: .5em;
font-family: sans-serif;
}
#sidebarOptions{
border: 1px solid #aaa;
background: #fff;
margin-top: .5em;
width: 100%;
}
#sidebar .sliderPanel{
margin: 0;
}
#contentWrapper #sidebarOptions .button,#contentWrapper #sidebarOptions .button:hover{
color:#002bb8;
padding: .1em 0 .1em 2em;
background: transparent url(bullet.gif) 10px -2px no-repeat;
}
#sidebarOptions input{
width: 80%;
margin: 0 .5em;
}
#sidebarTabs{
background: #fff;
margin-top: .5em;
width: 100%;
}
#sidebarTabs .tabContents,#sidebarTabs .tabContents .tabContents{
border: 1px solid #aaa;
background: #fff;
}
#sidebarTabs .tabSelected,#sidebarTabs .tabcontents .tabSelected {
background: #fff;
border: 1px solid #aaa;
border-bottom: 0;
cursor: default;
padding-bottom: 3px;
color: #000;
}
#sidebarTabs .tabUnselected,#sidebarTabs .tabContents .tabUnselected{
background: #aaa;
padding-bottom: 0;
color: #000;
}
#contentWrapper #sidebarTabs .tiddlyLink,#contentWrapper #sidebarTabs .button,
#contentWrapper #sidebarTabs a.tiddlyLink:hover,#contentWrapper #sidebarTabs a.button:hover{
background: transparent;
color: #002bb8;
}
.footer{
margin: -1em 0 1em 0;
}
.footer .button:hover,.editorFooter .button:hover{
background: transparent;
color: #002bb8;
border-bottom: 1px solid #002bb8;
}
#popup{
background: #e9e9e9;
color: #000;
}
#popup hr{
border-color: #aaa;
background-color: #aaa;
}
#popup a{
color: #000;
}
#popup a:hover,#contentWrapper #sidebarTabs #popup a:hover{
background: #666;
color: #fff;
text-decoration: none;
}
#displayArea .tiddler a.tiddlyLinkNonExisting{
color: #ba0000;
}
#displayArea .tiddler a.externalLink{
text-decoration: none;
color:#002bb8;
padding-right: 1em;
background: transparent url(external.png) 100% 50% no-repeat;
}
#displayArea .tiddler a.externalLink:hover{
text-decoration: underline;
}
.viewer pre{
background: #e9e9e9;
border: 1px solid #666;
}
.viewer h1, .viewer h2, .viewer h3, .viewer h4, .viewer h5, .viewer h6{
background: transparent;
border-bottom: .2em solid #aaa;
}
#sidebar .sliderPanel{
background: #e9e9e9;
}
#sidebar .sliderPanel input{width: auto;}
.tagged, .tagging, .listTitle{
float: none;
display: inline;
}
.tagged li, .tagging li,
.tagged ul, .tagging ul{
display: inline;
}
/*}}}*/
<!--{{{-->
<div class='title' macro='view title'></div>
<div class='toolbar' macro='toolbar -closeTiddler closeOthers +editTiddler permalink references jump'></div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
Voici un exemple de fichier ob4-full.conf :
{{{
# Mod ob4-full+usb pour firmware 2.X
# Parametres pour les fonctions integrees
# Version : 014
# Attention a respecter la casse.
# Parametres pour gerer les actions des boutons
# Gestion du capot (ou clip) selon le nombre d'appuis
# Actions a affecter :
# "Rien" pour ne rien faire
# "Wifi" pour WIFI ON/OFF
# "Boost" pour activer/desactiver le Boost ADSL
# "Reboot" pour rebooter la box
KEYCLIP1="Wifi"
KEYCLIP2="Boost"
KEYCLIP3="Reboot"
#
# Gestion du bouton de service selon le nombre d'appuis
# Actions a affecter :
# "Rien" pour ne rien faire
# "AddOn X" pour (des)activer les services additionnels (config X)
KEYSERV1="AddOn"
KEYSERV2="AddOn 2"
KEYSERV3="AddOn 3"
# Parametres pour les calendriers du WIFI/des LED
# Calendrier actif ou pas pour le WIFI (Oui/Non)
CALWIFI="Non"
#
# Calendrier actif ou pas pour les LED (Oui/Non)
CALLED="Non"
#
# Heures d'activite WIFI/LED
# (XX- pour wifi & LED actif a l'heure XX)
# (XX. pour wifi inchange & LED actif a l'heure XX)
# dimanche
CAL0="07.08-09.10.11.12.13.14.15.16.17.18.19.20.21.22."
# lundi
CAL1="07.08.09.10.11.12.13.14.15.16.17.18-19.20.21.22."
# mardi
CAL2="07.08.09.10.11.12.13.14.15.16.17.18-19.20.21.22."
# mercredi
CAL3="07.08.09.10.11.12.13.14.15.16.17.18-19.20.21.22."
# jeudi
CAL4="07.08.09.10.11.12.13.14.15.16.17.18-19.20.21.22."
# vendredi
CAL5="07.08.09.10.11.12.13.14.15.16.17.18-19.20.21.22.23."
# samedi
CAL6="07.08-09.10.11.12.13.14.15.16.17.18.19.20.21.22.23."
# Parametre pour modifier les latences du driver ADSL
# La diminution de la latence provoque une limitation du debit
# Les valeurs standards sont " 32 20" (down 32 ms, up 20 ms)
ADSL=" 32 20"
# Parametres a ne pas changer, sauf si vous connaissez bien le mod et Linux !!
# Media contenant le rootFS (sda1/../sdb3/Flash/None/NoMod)
MEDIA="None"
#
# Repertoire contenant le rootFS
REP="rootFS1"
#
# Retour au Firmware Usine SFR apres reboot (Oui/Non)
UPDATESFR="Non"
}}}
Voici un exemple de fichier ob4-usb.conf :
{{{
# Mod ob4-usb pour firmware 2.X
# Version : 014
# Parametres pour add-ons sur cle USB
# Parametres pour la MAJ de ob4-full.conf au lancement
# Service actif ou pas (Oui/Non)
ob4-full="Oui"
# Parametres pour la MAJ automatique de ob4-usb
# Service actif ou pas (Oui/Non)
#update="Non"
# Adresse de download des MAJ
#update_url="http://fxmx86.mine.nu/ob4-usb.new"
# Parametres pour les scripts personalises
# Service actif ou pas (Oui/Non)
autres="Non"
# Script(s) a lancer
autres_scripts="/datas/autres/*.sh"
# Parametres pour le client HTTP/FTP
# Service actif ou pas (Oui/Non)
http="Non"
# Liste des downloads HTTP/FTP (login/pwd possible)
# Recuperer les fichiers dans le meme repertoire
http_liste="/datas/http/ToDo.txt"
# Parametres pour le serveur HTTP
# Service actif ou pas (Oui/Non)
httpd="Non"
# Parametrage du site web supplementaire a ajuster (au
# moins, le parametre $HTTP["host"]). Quelques infos ici :
# http://redmine.lighttpd.net/projects/lighttpd/wiki
# Il est aussi recommande de modifier le nom du fichier.
httpd_conf="/datas/httpd/sample.conf"
# Parametres pour le serveur FTP
# Service actif ou pas (Oui/Non)
ftpd="Non"
# Autres parametres
ftpd_user1="User1"
ftpd_pwd1="Pwd1"
ftpd_path1="/datas/ftp"
# Parametres pour le lecteur mp3 Madplay
# Service actif ou pas (Oui/Non)
madplay="Non"
# Repertoire (et sous-repertoires) contenant les mp3
madplay_rep="/datas/music"
# Options ajoutees au lancement de Madplay
madplay_opt=""
# Parametres pour le service Webcam
# Info : Motion est un peu lourd. Ne pas utiliser avec un autre prg !
# Service actif ou pas (Oui/Non)
webcam="Non"
# Driver de la webcam (pwc/uvcvideo/gscpa/spca5xx)
webcam_drv="pwc"
# Parametrage de motion a utiliser. Les infos ici :
# http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome
webcam_conf="/datas/webcam/motion-stream.conf"
# Streaming externe avec le port defini dans webcam_conf (Oui/Non)
webcam_fw="Oui"
# Parametres pour le client Torrent
# Service actif ou pas (Oui/Non)
#ctorrrent="Non"
}}}