OSC2017 Chiba / OSC2017 Shimaneで話した内容。
͍·͔Β࢝ΊΔ3BTQCFSSZ1JʙͱΓָ͋͑ͣ͠Ήฤʙ͖͋ͬ͌ JE"LLJFTPGU 04$4IJNBOF
View Slide
ࣗݾհ• ͖͋ͬ͌ !"LLJFTPGU Ͱ͢• +BQBOFTF3BTQCFSSZ1J6TFST(SPVQ– Πϕϯτలࣔ୲ʁͬΆ͍ײ͡• &KFDUίϚϯυϢʔβʔձओ࠻• 3BTQCFSSZ1J͍͖ͩ͢ʔ– ͘Β͍͍࣋ͬͯͯ– ՈͰͬͨΓలࣔͱ͔ʹ͏
+BQBOFTF3BTQCFSSZ1J6TFST(SPVQ• SBTQJKQͰ3BTQCFSSZ1JͷใΛൃ৴– ͍͍ͩͨࢲ͕ॻ͍ͯ·͢• .- (PPHMF(SPVQT͋Γ·͢• Πϕϯτ– ݱࡏ͓ʹ04$ʹలࣔɾηϛφʔग़ల– 3BTQCFSSZ+". 3BTQCFSSZ1JϢʔβʔͷू·ΓΛෆఆظ։࠵
͖ΐ͏ͷͳ͍Α͏• ϥζύΠϒʔϜͷʹΓΕͪΌͬͯ• ͰͦΖͦΖ࢝ΊͯΈΑ͏͔ͳʁ• ͱΓ͋͑ͣԿ͠Α͏͔ͳʁ• ͍ͯ͏͔ങ͏ͱ͜Ζ͔ΒͳΜ͚ͩͲʂ• ͱ͍͏ਓ͚ͷೖηϛφʔ• ͩͱ͍͍ͳ
͘͠ʜ• ϥζύΠϒʔϜͷʹͬͯ• ࢝ΊͯΈ͚ͨͲ• 04Πϯετʔϧͯ͠ຬͪ͠Όͬͨʂ• ࠓ;FSP͕࠷৽ͳΜ͚ͩͬʂʁॳ͔࣋ͬͯ͠ͳ͍ͷʂ• Έ͍ͨͳਓ͚ͷ࠶ೖηϛφʔ• ͩͱ͍͍ͳ
3BTQCFSSZ1Jͬͯͳʹ͓͞Β͍Έ͍ͨͳͭ
͜Ε͕3BTQCFSSZ1Jͩʂ)%.*ిݯʢεϚϗͱಉ͡.JDSP64#ʣNNۃδϟοΫʢεςϨΦө૾ʣ(1*0 1JOT$4*Χϝϥϙʔτ%4*σΟεϓϨΠϙʔτ.JDSP4%ϙʔτ ཪ໘64#º.-"/64#ܦ༝ແઢ-"/#MVFUPPUI 64#ϋϒ-"/νοϓ3BTQCFSSZ1J.PEFM#
3BTQCFSSZ1Jͬͯͳʹ• ͜Ͳͨͪͷڭҭ༻ʹ࡞ΒΕͨ• -JOVY͕ಈ͘ԁͷ͍҆zύιίϯz• (1*0ͱݴ͏ϐϯΛͬͯిࢠ࡞ͬΆ͍ͷͰ͖Δ• ఆʹͯ͠ੈքͰരചΕ ສ• ۀγεςϜαΠωʔδ͋ΒΏΔγʔϯͰ׆༂͢ΔΠέΠέͳίϯϐϡʔλ
ύιίϯͳΜͰ͔͢ʁ• 1$͚04ͷҰͭͰ͋Δ-JOVY͕ಈ࡞͢Δ• ςϨϏʹܨ͛σεΫτοϓը໘͕ग़Δ• 4DSBUDIͱ͔.JOFDSBGUͱ͔Ͱ͖Δ• ϒϥβ͋Δ͠ϝʔϧͰ͖Δ• ϫʔϓϩදܭࢉ -JCSF0GGJDFೖͬͯΔ• ύιίϯͰ͢Ͷʁ– ࠷৽ϞσϧͩͱͲΕΘΓͱαΫαΫͰ͢Ϥ
ిࢠ࡞ʡʡͰ͖Δ• (1*0ϙʔτΛ͏ͱిࢠ࡞Ͱ͖Δ• -JOVYͰ͑Δ͍͍ͩͨͷݴޠͰϓϩάϥϛϯάͰ͖Δ– 1ZUIPO3VCZͳͲ--– +BWB$$– 4DSBUDI• ϒϨουϘʔυʹిࢠ෦Λૠ͍͍ͯͬͯ͠͠طͰखܰʹ࢝Ί͍͍ͯ
3BTQCFSSZ1JͷݱߦϞσϧղઆˍ͓͢͢ΊॳΊͯͷਓɺ࠶ೖͷਓʁ
͍Ζ͍Ζͳ3BTQCFSSZ1J• 3BTQCFSSZ1J.PEFM#• 3BTQCFSSZ1J.PEFM#• 3BTQCFSSZ1J.PEFM"• 3BTQCFSSZ1J;FSP– 7͓Αͼ8• 3BTQCFSSZ1J$PNQVUF.PEVMF– ௨ৗ͓Αͼ-JUF
3BTQCFSSZ1J.PEFM#• ࠷৽ͷ௨ৗϞσϧ• CJU$16– 04CJUͳͷͰ࣮࣭ͦΜͳʹมΘΒͳ͍• ϝϞϦ(#• ແઢ-"/#MVFUPPUIΛଂ• ॳΊͯPSٱ͠ͿΓͷਓ͜ΕΛങ͓͏
3BTQCFSSZ1J.PEFM#• ҰͭલͷϞσϧ• CJUίΞ$16– γϦʔζΑΓͬ͘͟Γഒ͍• ͱ͘Βͯແઢ͕ແ͍– ແઢ͕͑ͳ͍ڥͰಈ͔͍ͨ͠PSෆཁͳΒ͜Ε·͋·͓͋͢͢Ί
3BTQCFSSZ1J.PEFM"• γϦʔζͷ҆Ձ൛– ɾͷ.PEFM"ͳ͍ͷͰࠓݱߦ• ϝϞϦ.#– ॳ.#• 64#-"/͕ݮ͞ΕͨΘΓʹখ͍͞• มΞμϓλ͕͍Βͳ͍;FSPతͳײ͡
3BTQCFSSZ1J;FSP• εϖοΫγϦʔζͱେମಉ͡– प͕.I[ˠ()[ʹͳͬͯΔఔ• "ΑΓΠϯλʔϑΣΠεΛ٘ਜ਼ʹͯ͠খܕɾബܕɾՁ֨Խ จຕ੍ݶ༗• छྨ– 7ແઢ-"/ɾ#5ͳ͠υϧ ԁ– 8ແઢ-"/ɾ#5͋Γυϧ ԁ
1J;FSPͰσϏϡʔඍົ• εϖοΫ ͱ΄΅ಉ– Կߟ͑ͣඈͼͭ͘ͱ ͱಉ͡ӡ໋ʹ• ຊମ͍͚҆ͲΞμϓλ͕ඞཁ– .JOJ)%.*)%.*– .JDSP64#64#– σεΫτοϓ͚ʹ͏ͱෆ֨Ͱ͔ͭಈ࡞ॏ͍• (1*0ϐϯͷΜ͚͕͍ͩͨ͘ͳͬͨΒඞཁ
3BTQCFSSZ1JΛങ͓͏͍ͬ͡͞ʹങ͏
3BTQCFSSZ1Jͷങ͍ํ• ࠓങ͑Δͱ͜Ζͨ͘͞Μ͋Δ– 34ΦϯϥΠϯ– εΠοναΠΤϯε– ,4:͔Βങ͏– Ϥυόγͱ͔ϏοΫΧϝϥͱ͔ϠϚμͱ͔– "NB[PO– 1JNPSPOJ ΠΪϦε• ͓͖ͳͱ͜Ζ͔Βߪೖ͍ͩ͘͞
ݸਓత͓͢͢Ίͷങ͍ํ• 1JNPSPOJ ΠΪϦε– IUUQTTIPQQJNPSPOJDPN• έʔεηοτͰggg– ԁ͘Β͍– 1J#PX$PVQFέʔεศར͔Θ͍͍• લຊͰങ͏ΑΓ͔͚҆ͬͨͲϙϯυ͖ͬͯͯΔͳʁ
3BTQCFSSZ1J;FSPͷങ͍ํ• ຊநબൢചͯ͠ΔͬΆ͍• 1JNPSPOJ ΠΪϦε͔Βങ͏– 7ԁ• ຊମgૹྉgʹg– 8 ԁ• ຊମgૹྉgʹg– gԁ͘Β͍ ݱࡏͰࢉ– ΫϨδοτΧʔυ͔1BZQBMͰࢧ͍Ͱ͖Ε0,
पลػثͱ͔ͷങଗ͑ ඞਢ• ిݯ– 1J7"Ҏ্͕ਪ– " 8ରԠͷిݯͰ·͋େৎ• έʔϒϧରԠͨͭ͠Λʂ• .JDSP4%Χʔυ 04͕ೖΔ෦– $MBTTɾ(#Ҏ্ਪ– ݅Λຬ͍ͨͤ҆ͭͰ͍͍– 4BNTVOH &70 ͕͍͍͢͝
͋ΔͱΑΓྑ͍पลػث• ΩʔϘʔυɾϚε– ແઢυϯάϧλΠϓָ• )%.*ը໘ʹग़͢ͳΒదٓ• -"/– ηοτΞοϓΛϔουϨεͰΔͳΒඞਢ– ωοτʹܨ͙ʹ͍Δ͚Ͳ·͋
3BTQCFSSZ1JͷηοτΞοϓ3BTQCJBO͕ىಈ͢Δ·Ͱ
04ͷ༻ҙ• .JDSP4%ʹ04Λॻ͖ࠐΉ• 8JOEPXT.BD-JOVYదͳ1$͕ඞཁ• ॻ͖ࠐΈํͱ͓Γ– ͳΜΘ͔ΒΜͻͱ/00#4– ͪΐͬͱΘ͔Δͻͱ8JO%JTL*NBHFSɾ&UDIFS– νϣοτσΩϧͻͱEE
ͳΜΘ͔ΒΜਓ/00#4• ެࣜαΠτ͔Β/00#4Λμϯϩʔυ– IUUQTXXXSBTQCFSSZQJPSHEPXOMPBET– -*5&͡Όͳ͍ํΛબͿ• ;*1Λల։ͯ͠4%Χʔυʹίϐʔ• ͦΕΛ3BTQCFSSZ1Jʹૠͯ͠ىಈ– ΠϯετʔϥʔʹैͬͯΠϯετʔϧͩʂ
ͪΐͬͱ͔Δਓ• ެࣜαΠτ͔Β3BTQCJBOΠϝʔδΛμϯϩʔυ– IUUQTXXXSBTQCFSSZQJPSHEPXOMPBETSBTQCJBO– %&4,501͔-*5&ΛબͿ– #JU5PSSFOUͰ͖Δͻͱͦͬͪͷ͕ૣ͍Α• ;JQΛల։ͯ͠ɺJNHϑΝΠϧΛ8JO%JTL*NBHFSɾ&UDIFSͰॻ͖ࠐΉ
νϣοτσΩϧਓ• ࠷ۙEE͢Δͱ͖ʹΦϓγϣϯ͕ՃͰඞཁʹͳͬͨͷͰؾΛ͚ͭͯ– -JOVY– .BD$ sudo dd bs=4M if=2017-07-05-raspbian-jessie.img of=/dev/sdX conv=fsync$ sudo dd bs=4m if=2017-07-05-raspbian-jessie.img of=/dev/rdiskX conv=sync
ىಈʂ• 44)ଓ͍ͨ͠ਓ4%ΧʔυͷCPPUύʔςΟγϣϯʹTTIͱ͍͏ۭϑΝΠϧΛ࡞• 4%Χʔυɺ-"/ɺपลػثΛ3BTQCFSSZ1Jʹܨ͍ͰిݯΛૠ͢• ͦͷ͏ͪىಈ͢Δ
ىಈͨ͠Β• SBTQJDPOGJHͰઃఆ͠Α͏– σεΫτοϓͷਓ.FOVr 1SFGFSFODFTr3BTQCFSSZ1J$POGJHVSBUJPO• ࠷ॳʹඞͣมߋ͢Δ– QJϢʔβʔͷύεϫʔυ– ϗετ໊• ඞͣͰͳ͍͚Ͳม͑Δ– ϩέʔϧઃఆ– ΩʔϘʔυͷྻ σεΫτοϓͷ࣌– λΠϜκʔϯ– 8J'Jͷࠃઃఆ
04ͷΞοϓσʔτ• Ξοϓσʔτखॱ%FCJBOܥͱಉ͡• SQJVQEBUF্ڃऀ͚ͳͷͰ͍Βͳ͍– ຊདྷBQUͰೖΔϑΝʔϜΣΞΛHJUIVC͔Β࣋ͬͯ͘Δπʔϧ– ࠷৽ػೳΛࢼ͍ͨ͠ਓ͚$ sudo apt update$ sudo apt upgrade (or dist-upgrade)
3BTQCFSSZ1JΛָ͠Ήͦ͏ʂ04͍ΕͨΜ͚ͩͲʂͦͷઌ͕Ͷʂ
ָ͠Έํ͍Ζ͍Ζ• )"5ϘʔυΛͷͤͯಈ͔͢– දࣔܥͷϞδϡʔϧʹͳΜ͔ग़ͯ͠༡Ϳ– %"$ΛࡌͤͯϥζύΠΦʔσΟΦ• ిࢠ࡞͢Δ– ηϯαʔ͔ΒΛͱͬͯͻͨ͢Βه– ֎ઢֶशͰϦϞίϯΛͬͯΒ͏• ΧϝϥϞδϡʔϧͱΈ߹ΘͤΔ– 0QFO$7– λΠϜϥϓεΧϝϥ
)"5Ϙʔυ• 3BTQCFSSZ1Jຊମͷ্ʹͤͯ͏֦ுϘʔυ• ͨ͘͞Μͷ)"5͕ൢച͞Ε͍ͯΔ• 1J;FSPαΠζͷQ)"5ͱ͍͏ͷ͋Δ
ҎԼϒʔεͷ࡞հ• ͻͨ͢Β࡞ྫͰԥͬͯপʹΊ͍ͯ͘ελΠϧ• 1JNPSPOJΠΠͧʂʂ– 1J;FSPΛങ͏͍ͭͰʹങ͍͍͑ΜͰ͢Αʂ• EYDPNʹΜͳΞΠςϜ͕ଟ͋Δͧ– ૹྉແྉʹυϧͰ͚ͭͯങ͏ͱྑ͍
σεΫτοϓڥ• ୯७ʹσεΫτοϓ༻్ͱͯ͠ಈ͔ͨ͢ΊͷσϞ– :PV5VCFΛݟͤͯΈͨΓ– లࣔϒʔεͰใΛڭ͑Δ࣌ʹͦͷͰϒϥβΛ։͍ͯௐͨΓ– .JOFDSBGUΛσϞͨ͠Γ• ΦϑΟγϟϧͷλονσΟεϓϨΠΛ༻
%)5Թ࣪ηϯαʔσϞ• ॳ1JͰ࡞ͬͨԹ࣪ηϯαʔͷσϞ• %)5దʹങͬͨͭ– EYDPNͳͲ• Y-$%ϞδϡʔϧͰදࣔ– IUUQTTDJUP– ࠓൢചதͷϞδϡʔϧ༻Ͱ͖ͳ͍ͱͷ͜ͱɻࢲͷੲͷͭ
ۚڕͷࣂҭͷͨΊͷ࡞• ۚڕͷࣂҭͱ؍ʹ1J;FSPΛ༻• ීஈΧϝϥϞδϡʔϧͰ؍– IUUQTISJNQNBSPLVOOFULJOHZP• ग़ு࣌αʔϘϞʔλʔͱτΠϨοτϖʔύʔͷਊͰ࡞ͬͨӤΓஔͰλΠϚʔڅӤ
؍Χϝϥ• 1JNPSPOJ #MJOLUΛࡱӨ͚࣌ͩ౮ͯ͠র໌ʹ– (1*0ʹ͔ͿͤΔܗঢ়Λͯ͠Δ͚ͲɺέʔϒϧຊΛ৳ͯ͠ଓ• ݟΒΕΔͷ– ࣌ؒͷࣸਅ– ຖ࣌ߋ৽ͷඵಈը
λΠϜϥϓεΧϝϥ• ۚڕΧϝϥͱಉ͡ΧϝϥஔΛߏͯ͠λΠϜϥϓεࡱӨΧϝϥͱͯ͠ར༻• ඵ͝ͱʹࡱӨͯ͠αʔόʔʹΞοϓϩʔυ• ࡱӨͱ͔ωοτϫʔΫଓ֬ೝʹ#MJOLUΛ༻• ಈըมޙͰखಈͰ࡞ۀ
ϨγʔτϓϦϯλʔΛ͏• ΞΩόͷδϟϯΫͷϨγʔτϓϦϯλʔΛଓ• ϝϯγϣϯΛૹΔͱૹͬͨਓͷ໊લͱΞΠίϯ͕ग़ͯདྷΔͷΛͭͬͨ͘
ΧʔςϯΛ։͘ஔ• ຖேࣗΧʔςϯΛ։͍ͯ͘ΕΔ&KFDUίϚϯυ࡞• NPSOJOͷ&KFDU࣮ ͪΖΜࢲ͕ઌ• υϥΠϒʹ31JΛଂʂ
֎ͷؾใΛه• #.&ηϯαʔͰؾԹ࣪ؾѹΛऔಘ• ;BCCJYʹૹͬͯه• υϥΠϒଂ3QJ͕݉
&KFDU;FSP• $%30.υϥΠϒʹ1J;FSPΛଂ• 1J;FSPബͯ͘খ͍͞ͷͰɺτϨΠͷ্ʹݻఆͰ͖Δ• &KFDUΛ࣮ߦͯ͠Δ1J;FSP͕ࣗ&KFDU͞ΕΔͱ͍͏γϡʔϧͳ࡞
αʔόʔϧʔϜͷೖୀࣨݕ• αʔόʔϧʔϜʹਓ͕ग़ೖΓͨ͜͠ͱΛ֎ઢηϯαʔͰݕ͢Δ– ΩϯίϯνϟΠϜ͕໐Δ– 4MBDLͰ௨ʢ͍ͭͰʣ• αʔόʔϧʔϜͰ࡞ۀ͍ͯ͠Δ࣌ʹޙΖ͔ΒΛ͔͚ΒΕΔͱڻ͘ͷͰΩϯίϯνϟΠϜͰؾ͚Δͱ͍͏Έ
αʔόʔϧʔϜͷೖୀࣨݕ• αʔόʔϧʔϜͷग़ೖΓΛ֎ઢηϯαʔͰݕͯ͠ΩϯίϯνϟΠϜΛ໐Β͢• ެࣜυΩϡϝϯτΛࢀߟʹͨ͠
ΤΞίϯͷϦϞίϯʹຒΊࠐΉϗʔϜΦʔτϝʔγϣϯ
1JNPSPOJ4QFBLFSQ)"5• εϐʔΧʔΛੜ͢Ϟδϡʔϧ• ΞϯϓଂͰେ͖ͳԻ͕ग़Δ• ԻྔϨϕϧ͕-&%ϥΠτͰޫΔ• ϥδΧη෩σβΠϯͰ͔Θ͍͍• 4IBJSQPSUTZODͱΈ߹Θͤͯ"JS1MBZεϐʔΧʔͱͯ͠σϞ
1JNPSPOJ.JDSP%PUQ)"5• Y>ͷϞδϡʔϧΛͭฒͯจࣈͳͲΛྲྀͤΔϞδϡʔϧ• 1ZUIPOϥΠϒϥϦͰ؆୯ʹ͍Ζ͍Ζͳදݱ͕Ͱ͖Δ• ͻΒ͕ͳϑΥϯτͷࣗ࡞ͱ͔
ϑΝοΩϯϗοτԹܭ
4FOTF)"5• 3BTQCFSSZ1Jࡒஂ͕ൢച͢Δ)"5Ϟδϡʔϧ• "TUSP1JϓϩδΣΫτͷͨΊʹ։ൃ– IUUQTBTUSPQJPSH• ͍Ζ͍Ζ͍ͭͯΔ– YϑϧΧϥʔ-&%– δϣΠεςΟοΫ– ํҐ>ηϯαʔ
ຊͷ͓ఱؾදࣔ
ശࠜొࢁΛؾѹͰݟΔ92093094095096097098099010001010102011:11:0211:15:0211:19:0211:23:0111:27:0211:31:0111:35:0211:39:0111:43:0211:47:0111:51:0211:55:0111:59:0212:03:0112:07:0212:11:0112:15:0212:19:0112:23:0212:27:0112:31:0212:35:0112:39:0212:43:0112:47:0212:51:0212:55:0212:59:0213:03:0213:07:0213:11:0213:15:0213:19:0213:23:0213:27:0213:31:0213:35:0213:39:0213:43:0213:47:0213:55:0113:59:0214:03:0114:07:0214:11:0214:15:0214:19:02箱根湯本で散歩と昼飯秦野近辺でなぜか落ちる小田原〜箱根湯本ホテルの手前の坂宮ノ下駅着箱根湯本発スイッチバック&信号停止
*$ΧʔυͷߴνΣοΧʔ• 1BTPSJ 3$4Ͱ'FMJDBܥిࢠϚωʔͷߴϙΠϯτΛಡΈग़ͯ͠-$%Ϟδϡʔϧʹදࣔ͢Δ• MJCQBGFΛ༻• 3VCZͰॻ͍ͨ• ֤छަ௨*$ɺ&EZOBOBDPɺXBPOʹରԠ
ిࢠϖʔύʔϞδϡʔϧ• 1J;FSPαΠζͷిࢠϖʔύʔϞδϡʔϧ• ిݯΛͬͯදࣔ༰͕Δʂ• தࠃͷനࠇͷͭͰԁ• 1JNPSPOJനࠇԁ͘Β͍– ൢച͕Ұ࣌ఀࢭͯ͠Δ͚Ͳ• ໊ࡳɾࡳʹ
༡ΜͰΈ͍ͨϞδϡʔϧ͋Γ·ͨ͠ʁ• ؾʹͳͬͨΒͱΓ͋͑ͣങͬͯΈΑ͏• ࠷ۙͷ͓͢͢Ίిࢠϖʔύʔ͋ͨΓ– தࠃͷԁ• ଞʹ͍Ζ͍ΖͳϞδϡʔϧ͕͋ΔͷͰ୳ͯ͠ΈΑ͏ʂ
·ͱΊ• 3BTQCFSSZ1J-JOVYͷύιίϯ• ిࢠ࡞Ͱ͖Δ• ϞδϡʔϧΛങͬͯૠͯ͠༡Δ– ָ͍͠Ϟδϡʔϧ͕ͨ͘͞Μ• 1ZUIPOͱ͔ͷ؆୯ͳݴޠͰ࢝ΊΒΕΔ• ॳΊͯͷਓͱٱ͠ͿΓͷਓͱΓ͋͑ͣ3BTQCFSSZ1JΛങ͓͏ʂ
͓ΘΓ