{"id":1107,"date":"2014-06-22T10:23:08","date_gmt":"2014-06-22T09:23:08","guid":{"rendered":"http:\/\/www.leonardomiliani.com\/?p=1107"},"modified":"2014-07-11T18:05:42","modified_gmt":"2014-07-11T17:05:42","slug":"aggiornare-la-toolchain-atmel-su-mac-os-x","status":"publish","type":"post","link":"https:\/\/leonardomiliani.com\/?p=1107","title":{"rendered":"Aggiornare la toolchain Atmel su Mac OS X"},"content":{"rendered":"<p>In questo articolo vi mostrer\u00f2 come aggiornare la toolchain Atmel su OS X per poter usufruire degli strumenti di compilazioni pi\u00f9 aggiornati disponibili. C&#8217;\u00e8 un problema, ossia che la compilazione della toolchain dai sorgenti di GNU \u00e8 un vero calvario! Ma possiamo risolvere il problema usando <strong>CrossPack<\/strong>! CrossPack \u00e8 la toolchain gi\u00e0 precompilata e impacchettata in forma di comoda app che possiamo scaricare ed installare sul nostro sistema in un paio di minuti. Attenzione: CrossPack gira su OS X 10.6 o successivi, la presente guida \u00e8 stata realizzata su Mavericks: penso che possa funzionare\u00a0anche su versioni precedenti del sistema senza o con poche modifiche.<\/p>\n<p><!--more--><\/p>\n<p>[notice]Requisito fondamentale \u00e8 la conoscenza minima del terminale, necessaria per poter inserire alcuni comandi. Non si tratta di nulla di eccezionale, ma \u00e8 richiesta una certa dimestichezza perch\u00e9 con &#8220;<em>sudo<\/em>&#8221; ed il terminale si pu\u00f2 alterare il sistema, se si sbaglia a scrivere un comando.[\/notice]<\/p>\n<p style=\"text-align: left;\">Prima di tutto, procuriamoci l&#8217;ultima versione di CrossPack da questa <a href=\"http:\/\/www.obdev.at\/products\/crosspack\/download.html\">pagina<\/a>. Al momento della stesura di questa guida (21\/06\/2014) la versione pi\u00f9 recente \u00e8 la\u00a0<a style=\"color: #0066bb;\" href=\"http:\/\/www.obdev.at\/downloads\/crosspack\/CrossPack-AVR-20131216.dmg\">CrossPack-AVR-20131216<\/a>\u00a0(ossia rilasciata il 16\/12\/2013). Scaricato il file\u00a0<em>.dmg<\/em>,\u00a0installiamo la suite con un doppio click sull&#8217;icona del pacchetto &#8220;<em>CrossPack-AVR.pkg<\/em>&#8220;.<\/p>\n<p style=\"text-align: left;\"><a href=\"http:\/\/www.leonardomiliani.com\/wp-content\/uploads\/2014\/06\/screenshot-01.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1133 size-medium\" src=\"http:\/\/www.leonardomiliani.com\/wp-content\/uploads\/2014\/06\/screenshot-01-300x166.jpg\" alt=\"CrossPack-AVR\" width=\"300\" height=\"166\" srcset=\"https:\/\/leonardomiliani.com\/wp-content\/uploads\/2014\/06\/screenshot-01-300x166.jpg 300w, https:\/\/leonardomiliani.com\/wp-content\/uploads\/2014\/06\/screenshot-01.jpg 770w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">Terminata l&#8217;installazione dei file, inizia la parte pi\u00f9 complicata del lavoro, dove opereremo da terminale. Aprite il Launcher\u00a0e selezionate l&#8217;app &#8220;<em>Terminale<\/em>&#8221; oppure, se l&#8217;avete sulla vostra Dock Bar, apritelo da l\u00ec. Adesso \u00e8 importante che digitiate i comandi cos\u00ec come sono riportati (adattandoli, quando ve lo dir\u00f2, al vostro sistema). Portiamoci nella cartella di sistema dov&#8217;\u00e8 presente CrossPack-AVR con:<\/p>\n<p style=\"text-align: left;\"><code>cd \/usr\/local<\/code><\/p>\n<p style=\"text-align: left;\">Dando il comando<\/p>\n<p style=\"text-align: left;\"><code>ls -la<\/code><\/p>\n<p style=\"text-align: left;\">possiamo vedere un elenco dettagliato dei file di quella cartella:<\/p>\n<pre style=\"text-align: left;\"><code>drwxrwxr-x  21 root            admin 714   27 Apr 12:00 .\r\ndrwxr-xr-x@ 12 root            wheel 408   27 Apr 11:56 ..\r\n-rw-r--r--@ 1  leonardomiliani admin 6148  4  Mag 12:29 .DS_Store\r\ndrwxr-xr-x  13 leonardomiliani admin 442   27 Apr 12:28 .git\r\n-rw-r--r--  1  leonardomiliani admin 246   27 Apr 10:52 .gitignore\r\n-rw-r--r--  1  leonardomiliani admin 3158  27 Apr 10:52 CODEOFCONDUCT.md\r\n-rw-r--r--  1  leonardomiliani admin 687   27 Apr 10:52 CONTRIBUTING.md\r\ndrwxr-xr-x  13 leonardomiliani admin 442   28 Apr 11:15 Cellar\r\nlrwxr-xr-x  1  root            admin 22    31 Mar 15:49 CrossPack-AVR -> CrossPack-AVR-20131216\r\ndrwxr-xr-x  15 root            wheel 510   16 Dic 2013 CrossPack-AVR-20131216\r\n-rw-r--r--  1  leonardomiliani admin 1253  27 Apr 10:52 LICENSE.txt\r\ndrwxr-xr-x  9  leonardomiliani admin 306   27 Apr 10:55 Library\r\n-rw-r--r--  1  leonardomiliani admin 1708  27 Apr 10:52 README.md\r\n-rw-r--r--  1  leonardomiliani admin 23719 27 Apr 10:52 SUPPORTERS.md\r\ndrwxr-xr-x  84 leonardomiliani admin 2856  14 Mag 18:44 bin\r\ndrwxr-xr-x  3  leonardomiliani admin 102   27 Apr 12:00 etc\r\ndrwxrwxr-x  18 root            admin 612   27 Apr 12:28 include\r\ndrwxr-xr-x  67 root            admin 2278  27 Mag 17:52 lib\r\ndrwxr-xr-x  14 leonardomiliani admin 476   28 Apr 11:15 opt\r\ndrwxr-xr-x  15 leonardomiliani admin 510   14 Mag 18:44 share\r\ndrwxr-xr-x  3  leonardomiliani admin 102   27 Apr 12:00 var<\/code><\/pre>\n<p style=\"text-align: left;\">Fate caso a questo, ci sono 2 cartelle che hanno un nome che iniziano con &#8220;<em>CrossPack-AVR<\/em>&#8220;: una \u00e8 la cartella vera e propria che contiene la toolchain, &#8220;<em>CrossPack-AVR-20131216<\/em>&#8220;, mentre l&#8217;altra \u00e8 un link a questa (notate la presenza della freccia &#8220;<strong>-><\/strong>&#8220;). Altra cosa che potete notare sono il nome del proprietario dei vari file ed il gruppo di appartenenza. Mac OS X, derivando da UNIX, conserva un ferreo controllo sull&#8217;accesso ai file in base ai proprietari ed ai gruppi di appartenza, in modo che le azioni di ogni singolo utente siano limitate ai propri file oppure ai file dei gruppi a cui anch&#8217;egli appartiene. Come vedete, la cartella che contiene la toolchain di CrossPack appartiene al gruppo &#8220;<strong>wheel<\/strong>&#8220;, che sui sistemi *nix \u00e8 un gruppo che ha\u00a0la possibilit\u00e0 di diventare &#8220;<em>superuser<\/em>&#8221; (ossia operare come fosse l&#8217;utente amministratore, &#8220;<em>root<\/em>&#8220;, senza esserlo, tramite il comando &#8220;<em>sudo<\/em>&#8220;) ma anche di poter accedere a determinate periferiche e\/o file. Nel nostro caso, necessitiamo di appartenere al gruppo &#8220;<em>wheel<\/em>&#8221; per poter compilare ed inviare alle schede Arduino i\u00a0nostri sketch. Per far ci\u00f2 dobbiamo assegnare il nostro utente al gruppo &#8220;<em>wheel<\/em>&#8221; con il seguente comando:<\/p>\n<p style=\"text-align: left;\"><code>sudo dseditgroup -o edit -a NOMEUTENTE -t user wheel<\/code><\/p>\n<p style=\"text-align: left;\">sostituendo a &#8220;<em>NOMEUTENTE<\/em>&#8221; il nome\u00a0che avete scelto al momento dell&#8217;installazione di Mac OS X. E&#8217; facile scoprirlo perch\u00e9 \u00e8 quello che compare al prompt sul terminale dopo il nome del vostro computer. Nel mio caso:<\/p>\n<p style=\"text-align: left;\"><code>iMac-di-Leonardo:\/ leonardomiliani$<\/code><\/p>\n<p style=\"text-align: left;\">Ecco il mio utente, &#8220;<em>leonardomiliani<\/em>&#8220;.<\/p>\n<p style=\"text-align: left;\">Fatto questo passaggio, torniamo all&#8217;ambiente grafico. Adesso dobbiamo\u00a0creare una copia dell&#8217;IDE di Arduino con la nuova toolchain.\u00a0Procuriamoci quindi da questa <a href=\"http:\/\/arduino.cc\/en\/Main\/Software\">pagina<\/a> l&#8217;ultima versione dell&#8217;IDE, se gi\u00e0 non l&#8217;abbiamo sul nostro sistema:\u00a0al momento della stesura di questa guida \u00e8 la <a href=\"http:\/\/arduino.googlecode.com\/files\/arduino-1.0.5-macosx.zip\">1.0.5<\/a>.<\/p>\n<p style=\"text-align: left;\">Siccome dobbiamo lavorare all&#8217;interno del pacchetto dell&#8217;app Arduino, per comodit\u00e0 la copia dell&#8217;IDE \u00e8 bene che sia all&#8217;interno della cartella Applicazioni del nostro utente. Se avete gi\u00e0 l&#8217;IDE di Arduino installato sul vostro sistema, aprite il Finder, selezionate &#8220;<em>Applicazioni<\/em>&#8221; dal menu di sinistra e poi, cliccando col pulsante destro del mouse direttamente sull&#8217;app, scegliete &#8220;<em>Duplica<\/em>&#8220;, oppure selezionatela e poi dal menu &#8220;<em>File<\/em>&#8221; scegliete la voce &#8220;<em>Duplica<\/em>&#8220;. Verr\u00e0 creata una copia dell&#8217;app. Aprite un&#8217;altra finestra del Finder e poi selezionate dal menu &#8220;<em>Vai<\/em>&#8221; la voce &#8220;<em>Computer<\/em>&#8220;. Si aprir\u00e0 la vista delle periferiche del vostro computer. Cliccate sull&#8217;icona del vostro disco rigido (dovrebbe essere &#8220;<em>Macintosh HD<\/em>&#8220;), poi su &#8220;<em>Utenti<\/em>&#8220;, poi sull&#8217;icona a forma di casa con il vostro nome utente ed infine sulla cartella &#8220;<em>Applications<\/em>&#8220;. Queste sono le app installate solo per il vostro utente, come potete vedere sono molto poche rispetto a quelle presenti sul sistema. La comodit\u00e0 di selezionare questa cartella \u00e8 data dal fatto che abbiamo un percorso accessibile senza dover dare permessi\u00a0o percorsi particolari.<\/p>\n<p style=\"text-align: left;\"><a href=\"http:\/\/www.leonardomiliani.com\/wp-content\/uploads\/2014\/06\/screenshot-02.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1136 size-medium\" src=\"http:\/\/www.leonardomiliani.com\/wp-content\/uploads\/2014\/06\/screenshot-02-300x188.jpg\" alt=\"Macintosh HD\" width=\"300\" height=\"188\" srcset=\"https:\/\/leonardomiliani.com\/wp-content\/uploads\/2014\/06\/screenshot-02-300x188.jpg 300w, https:\/\/leonardomiliani.com\/wp-content\/uploads\/2014\/06\/screenshot-02.jpg 770w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Una volta nella cartella &#8220;<em>Applications<\/em>&#8221; del nostro utente, trasciniamo qui la copia dell&#8217;IDE che abbiamo fatto oppure direttamente l&#8217;app appena scaricata dal sito di Arduino e rinominiamola con un nome indicativo, io ad esempio ho scelto &#8220;<strong><em>Arduino 1.0.5 crosspack<\/em><\/strong>&#8220;.<\/p>\n<p style=\"text-align: left;\">Adesso facciamo click col pulsante destro e scegliamo &#8220;<em>Mostra contenuto pacchetto<\/em>&#8221; oppure selezioniamo l&#8217;icona e poi dal menu delle azioni (l&#8217;icona a forma di rotellina sul Finder) clicchiamo su &#8220;<em>Mostra contenuto pacchett<\/em>o&#8221;, ed entriamo cos\u00ec nell&#8217;app stessa.<\/p>\n<p style=\"text-align: left;\"><a href=\"http:\/\/www.leonardomiliani.com\/wp-content\/uploads\/2014\/06\/Screenshot-03.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1137 size-medium\" src=\"http:\/\/www.leonardomiliani.com\/wp-content\/uploads\/2014\/06\/Screenshot-03-300x104.jpg\" alt=\"Mostra contenuto pacchetto\" width=\"300\" height=\"104\" srcset=\"https:\/\/leonardomiliani.com\/wp-content\/uploads\/2014\/06\/Screenshot-03-300x104.jpg 300w, https:\/\/leonardomiliani.com\/wp-content\/uploads\/2014\/06\/Screenshot-03.jpg 590w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Clicchiamo su &#8220;<em>Contents\/Resources\/Java\/hardware\/tools<\/em>&#8220;: troveremo al termine di questo percorso una cartella denominata &#8220;<em>avr<\/em>&#8220;: essa contiene la toolchain originale dell&#8217;IDE di Arduino. Dobbiamo eliminarla: tranquilli, tanto stiamo lavorando sulla copia dell&#8217;IDE, ricordate? Quindi, prendete l&#8217;icona e trascinatela nel cestino (svuotate poi il cestino per assicurarsi che il sistema la elimini definitivamente). A questo punto non ci resta che inserire la toolchain in questa copia dell&#8217;IDE. Siccome la toochain \u00e8 gi\u00e0 presente nel sistema (ricordate? \u00e8 nella cartella &#8220;<em>CrossPack-AVR<\/em>&#8220;) il modo pi\u00f9 semplice \u00e8 usare le potenzialit\u00e0 dei sistemi *nix e creare un <span style=\"text-decoration: underline;\">collegamento simbolico<\/span>.<\/p>\n<p style=\"text-align: left;\">Riapriamo il terminale e digitiamo il seguente comando:<\/p>\n<p style=\"text-align: left;\"><code>cd '\/Users\/NOMEUTENTE\/Applications\/NOME_COPIA_IDE.app'<\/code><\/p>\n<p style=\"text-align: left;\">sostituendo a &#8220;<em>NOMEUTENTE<\/em>&#8221; il vostro nome utente ed a &#8220;<em>NOME_COPIA_IDE<\/em>&#8221; il nome che avete dato alla vostra copia dell&#8217;app. Ricordatevi i singoli apici prima e dopo il percorso: sono importanti perch\u00e9 se avete, come nel mio caso, scelto un nome che contiene degli spazi come separatori, il terminale interpreterebbe il comando male (in *nix lo spazio separa i vari comandi oppure i vari parametri dei comandi stessi). Quindi, tornando al mio esempio, io digiter\u00f2:<\/p>\n<p style=\"text-align: left;\"><code>cd '\/Users\/leonardomiliani\/Applications\/Arduino 1.0.5 crosspack.app'<\/code><\/p>\n<p style=\"text-align: left;\">Adesso, sempre da terminale, spostiamoci fino alla cartella che conterr\u00e0 il collegamento simbolico alla toolchain: \u00e8 la stessa cartella che conteneva la cartella &#8220;<em>avr<\/em>&#8221; che abbiamo cancellato in precedenza. Digitiamo:<\/p>\n<p style=\"text-align: left;\"><code>cd Contents\/Resources\/Java\/hardware\/tools<\/code><\/p>\n<p style=\"text-align: left;\">ora in questa cartella creeremo il collegamento simbolico con:<\/p>\n<p style=\"text-align: left;\"><code>ln -s \/usr\/local\/CrossPack .\/avr<\/code><\/p>\n<p style=\"text-align: left;\">Se adesso diamo il comando:<\/p>\n<p style=\"text-align: left;\"><code>ls -la<\/code><\/p>\n<p style=\"text-align: left;\">vedremo che la cartella avr \u00e8 un link simbolico a CrossPack-AVR.<\/p>\n<p style=\"text-align: left;\">Bene! Abbiamo terminato. Chiudete tutte le finestre del terminale, poi aprite il Finder,\u00a0cliccate su &#8220;Vai&#8221; e poi su &#8220;Computer&#8221;, aprite il vostro disco rigido, poi entrate nella cartella del vostro utente, selezionate &#8220;Applications&#8221; e trascinate l&#8217;icona dell&#8217;IDE di Arduino con la toolchain di CrossPack nella Dock Bar, in modo da avere l&#8217;app a portata di click ed il gioco \u00e8 fatto. Aprendo l&#8217;IDE con la nuova toolchain potrete compilare i vostri sketch con gli ultimi strumenti messi a disposizione da Atmel ossia avr-gcc 4.8.1, binutils 2.23.2 e avrdude 6.0.1. Buon divertimento!<\/p>\n<p style=\"text-align: left;\">\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>In questo articolo vi mostrer\u00f2 come aggiornare la toolchain Atmel su OS X per poter usufruire degli strumenti di compilazioni&#46;&#46;&#46;<\/p>\n","protected":false},"author":193,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"class_list":["post-1107","post","type-post","status-publish","format-standard","hentry","category-arduino"],"_links":{"self":[{"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=\/wp\/v2\/posts\/1107","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=\/wp\/v2\/users\/193"}],"replies":[{"embeddable":true,"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1107"}],"version-history":[{"count":8,"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=\/wp\/v2\/posts\/1107\/revisions"}],"predecessor-version":[{"id":1150,"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=\/wp\/v2\/posts\/1107\/revisions\/1150"}],"wp:attachment":[{"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1107"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1107"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}